複数行のフィールドを1行に追加

複数行のフィールドを1行に追加

size -A出力の.dataおよび.bss部分を追加しようとしています。

size -A mylib.so | grep "\.data" | awk '{print $2}

これにより、.dataセクションのサイズ値が印刷されます。

このコマンドをawkにコピー/貼り付けることができると思いますが、それではすぐに醜くなります。

このような複数行を一度に解析する方法はありますか?

答え1

これはあなたが望むものですか?

size -A mylib.so | 
awk '$1 == ".data" || $1 == ".bss" {sum += $2} END {print sum}'

サイズ出力から.dataと.bssサイズのみを抽出し、GNU grepがある場合:

size -A mylib.so | grep -oP '^(\.data|\.bss)\s+\K\d+'

関連情報