awk は NR を使って繰り返し回数を出力します。

awk は NR を使って繰り返し回数を出力します。

ファイルのリストを繰り返して最後の行を抽出し、列8、9、10を印刷します。また、実際に処理されているレコードの総数(NR)である「イベント番号」を出力に印刷する必要があります。最初の列のイベント/レコード番号を次のように出力ファイルに印刷するにはどうすればよいですか?

for i in `ls -d *mcp`; do
tail -1 "$i" | awk  '{ printf "%s %s %s\n", $8, $9, $10}' >> ${Pout}${output}
done
echo "Finished Looping through each file."

私が望む出力は次のとおりです。

1 45 60 5
2 30 67 3
3 40 12 4
.
.
.

'45 列は $8、60 列は $9、5 列は $10 を表します。 1、2、3などが出力する必要があります。本質的に行番号を印刷する必要があります。

ベストアンサー1

この試み:

for i in ./*.mcp; do
    if [ -f "$i" ]; then
        tail -1 "$i"
    fi
done | awk '{ print NR, $8, $9, $10 }'

おすすめ記事