Awkを使用して特定の列の最初の100行を合計するにはどうすればよいですか?私は書いたAwkを使用して特定の列の最初の100行を合計するにはどうすればよいですか?
awk 'BEGIN{FS="|"} NR<=100 {x+=$5}END {print x}' temp.txt
しかし、これは処理に多くの時間がかかります。結果をすぐに与える他の方法はありますか?
Awkを使用して特定の列の最初の100行を合計するにはどうすればよいですか?私は書いたAwkを使用して特定の列の最初の100行を合計するにはどうすればよいですか?
awk 'BEGIN{FS="|"} NR<=100 {x+=$5}END {print x}' temp.txt
しかし、これは処理に多くの時間がかかります。結果をすぐに与える他の方法はありますか?
必要な最初の100のレコードの後だけexit
:
awk -v iwant=100 '{x+=$5} NR==iwant{exit} END{print x+0}' test.in
は、スピンのためにそれを取る:
$ for i in {1..1000}; do echo 1 >> test.in ; done # thousand of records
$ awk -v iwant=100 '{x+=$1} NR==iwant{exit} END{print x+0}' test.in
100
'{x+=$5} NR==iwant{exit} END{print x+0}'
あなたは常に入力トリムと同じスクリプトを使用することができます
head -100 file | awk ... your script here ...
"処理に時間がかかる"とはどういう意味ですか?あなたの入力はどれくらいですか?あなたがコマンドラインに 'time'を前置するとどうなるでしょうか? –