次の入力を含むファイルがあります。
abc
def
ghi
23
54
12
tuy
12
iuy
56
67
文字行の後にすべての数字を追加し、次のように文字の前に印刷したいと思います。
abc
def
ghi 89
tuy 12
iuy 123
誰でも助けることができますか?
ベストアンサー1
配列を使用してすべての合計を保存し、ENDセクションに印刷しますが、ゼロ合計は抑制します。
awk '/^[^0-9]/ {IX = $0} {SUM[IX] += $0} END {for (s in SUM) print s, SUM[s]?SUM[s]:""}' file
abc
ghi 89
iuy 123
tuy 12
def
たとえば、配列インデックスがコピーされる順序は(s in SUM)
定義されていません。発生順に出力が必要な場合は、追加(簡単)測定が必要です。