특정 열을 추출하여 *_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