次のファイルがいくつかあります。 (実際には80個あります。)
ファイル1.dat
2 5
6 9
7 1
ファイル2.dat
3 7
8 4
1 3
2行目をすべて含むファイルにしたいと思います。つまり
出力データ
6 9
8 4
これまで私が持っていることはファイル名で繰り返されますが、それ以前のファイルを上書きします。たとえば、上記のファイルの出力は次のようになります。
8 4
私のシェルスクリプトは次のとおりです。
アフター.sh
TEND = 80
TINDX = 0
while [ $TINDX - lt $TEND]; do
awk '{ print NR==2 "input-$TINDX.dat > output.dat
TINDX = $((TINDX+1))
done
ベストアンサー1
while
ループを削除し、組み込みFNR
変数awk
でシェル中括弧拡張を使用します。
awk 'FNR==2{print $0 > "output.dat"}' file{1..80}.dat