Shell-Script
awk - 將多個 .dat 文件的第二行輸出到一個文件
我有多個文件,例如:(實際上我有 80 個)
文件1.dat
2 5 6 9 7 1
文件2.dat
3 7 8 4 1 3
我想最終得到一個包含所有第二行的文件。IE
輸出.dat
6 9 8 4
到目前為止,我所擁有的內容會循環文件名,但隨後會覆蓋它之前的文件。例如,上述文件的輸出只是
8 4
我的 shell 腳本如下所示:
post.sh
TEND = 80 TINDX = 0 while [ $TINDX - lt $TEND]; do awk '{ print NR==2 "input-$TINDX.dat > output.dat TINDX = $((TINDX+1)) done
刪除
while
循環並使用外殼大括號擴展以及FNR
內置awk
變數:awk 'FNR==2{print $0 > "output.dat"}' file{1..80}.dat
sed
就足夠了:sed -sn 2p file{1..80}.dat > output.dat
-s
需要選項來列印每個文件的第 2 行,否則只會列印第一個文件的第 2 行。