awk - 複数の.datファイルの2行目を1つのファイルとして出力します。

awk - 複数の.datファイルの2行目を1つのファイルとして出力します。

次のファイルがいくつかあります。 (実際には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

おすすめ記事