
2行ごとに数字を足して合計を印刷する必要があります。
前任者:
x
1
2
y
3
4
以下を出力する必要があります。
x 3
y 7
答え1
以下は1つのアプローチです。pr
便利そしてアイク。
次の入力を使用してください。
$ cat ip.txt
x
1
2
y
3
4
まず、入力ファイルを3列の入力に変換してからawkを使用します。
$ pr -3at ip.txt | awk '{print $1, $2+$3}'
x 3
y 7
別の方法はgetline
<var>
:
この方法で使用されるgetlineコマンドは、変数NR、FNR、およびRT(もちろんvarも含む)のみを設定します。レコードはフィールドに分割されないため、フィールド値($ 0を含む)とNF値は変更されません。
$ awk '{getline a; getline b; print $0 a+b}' ip.txt
x 3
y 7
答え2
もう一つの方法はawkステートメントを使用することですgetline
。
$ awk '{a=$0;getline;b=$1;getline;print a,b+$1}' ip.txt
x 3
y 7
$