特定の列を抽出して* _2.txtファイルに保存するテキストファイルがいくつかあります。
awk '{print $(NF-3), $5}' *.txt > *_2.txt
ただし、このコマンドは機能しません。 awkを使用してバッチ列抽出を実装するには?
入力する:
a.txt
aaa bbb ccc 109.6136 93.1900 1.0000 269.7332 35703.1790
ddd eee fff 48.8760 34.2100 1.0000 215.0926 35918.2717
ggg hhh iii 17.3588 -65.4900 0.7000 14008.0228 49926.2945
...
b.txt
qq ss rr 105 71.6239 68.1500 3.0000 1.3408 4329.5373
aa bb nn 110 271.3443 231.4200 10.0000 15.9395 4345.4768
rr uu ii 115 338.2163 415.6700 25.0000 9.5985 4355.0753
zz xx yy 120 536.0957 584.7900 50.0000 0.9485 4356.0238
...
目標出力:
a_2.txt
109.6136 93.1900 1.0000
48.8760 34.2100 1.0000
17.3588 -65.4900 0.7000
...
b_2.txt
105 71.6239 68.1500
110 271.3443 231.4200
115 338.2163 415.6700
120 536.0957 584.7900
...
各テキストファイルから特定の列を抽出し、名前に_2を追加して各テキストファイルに保存したいと思います。ターゲット列は $(NF-5)、$(NF-4)、$(NF-3) です。
答え1
次のようにAWKスクリプトでこれを行う必要があります。
awk 'FNR == 1 { sub(/\.txt$/, "_2.txt", FILENAME) } { print $(NF-3), $5 > FILENAME }' *.txt