2つの入力ファイルfileA.txt
とfileB.txt
があります。ファイルは、このようなものです:複数のテキストファイルからテキストを抽出するためにsed
FileA.txt
Color
yellow
orange
black
Fruit
apple
banana
Weekday
monday
sunday
FileB.txt
Color
blue
green
Fruit
melon
Weekday
saturday
tuesday
thursday
は、私は、Color
以下のすべてのファイルでFruit
、Weekday
の情報を抽出し、各フィールドに新しいものを作成したいと思います。だから、私の出力は、Color.txt
、Fruit.txt
、Weekday.txt
のような3つのファイルです。
Color.txt
Color_A
yellow
orange
black
Color_B
blue
green
Fruit.txt
Fruit_A
apple
banana
Fruit_B
melon
そして、私は今、願っています
Weekday.txt
についても同様で、おかげでより明確です。
rm Color.txt Fruit.txt Weekday.txt # old files will spoil this.
for f in A B
do
while read x
do
L=${x%${x#?}}
l=$(echo $L | tr '[:upper:]' '[:lower:]')
if [ $L != $l ]
then
F=$x.txt
echo ${x}_$f >> $F
else
echo $x >> $F
fi
done < File$f.txt
done
出力:
head {Fruit,Color,Weekday}.txt
==> Fruit.txt <==
Fruit_A
apple
banana
Fruit_B
melon
==> Color.txt <==
Color_A
yellow
orange
black
Color_B
blue
green
==> Weekday.txt <==
Weekday_A
monday
sunday
Weekday_B
saturday
tuesday
thursday
仕組み:保留にPOSIXシェルスクリプト(bashのすなわち、ダッシュなど)では
出力例では最終目標(IMHO)が明確に定義されていないため、これは役に立ちません。 'hp1'のすべてのデータを(すべてのファイルから)' hp1'という名前の1つのファイルに入れてみませんか?それは私にはもっと意味がある。例示的なデータを使用して目標を説明するより良い方法を考えることができれば、より良い助けが得られます。また、ほとんどの場合、awkはテキストファイル操作の方がはるかに簡単であることがわかります。私が言ったことは、新しいパラダイムを学ぶことは難しいことがあることを知っているので、試してみてください。 – shellter
何を試しましたか?そして、はい、これについてawkを見てください。 –
hp1のすべてのデータを(すべてのファイルから)1つのファイルhp1に変換すると動作します。しかし、私はまた、ファイルとデータを関連づけたい。 –