2
我要輸出每N行,例如,每4行的總和:如何總結awk中的每一行?
cat file
1
11
111
1111
2
22
222
2222
3
33
333
3333
輸出應該是:
6 #(1+2+3)
66 #(11+22+33)
666 #(111+222+333)
6666 #(1111+2222+3333)
我怎樣才能做到這一點使用awk?
我要輸出每N行,例如,每4行的總和:如何總結awk中的每一行?
cat file
1
11
111
1111
2
22
222
2222
3
33
333
3333
輸出應該是:
6 #(1+2+3)
66 #(11+22+33)
666 #(111+222+333)
6666 #(1111+2222+3333)
我怎樣才能做到這一點使用awk?
基本上你可以使用下面的命令awk
:
awk -vN=4 '{s[NR%N]+=$0}END{for(i=0;i<N;i++){print s[i]}}' input.txt
你可以選擇像N
希望。
輸出:
6666
6
66
666
但是你看,輸出不通過awk
數組進行遍歷時,預期排序。您可以通過-1
移行號解決這個問題:
awk -vN=4 '{s[(NR-1)%N]+=$0}END{for(i=0;i<N;i++){print s[i]}}' a.txt
輸出:
6
66
666
6666
如果你想在awk中,爲什麼是bash的在您的標題? – 2015-04-01 21:40:16
我可以使用任何語言或只是bash嗎? – xsami 2015-04-01 21:40:26