次のファイルがあります。
abc 123
abc 789
bcd 456
acb 135
次の行の最初の列を現在の行に印刷したいと思います。
希望の出力:
abc 123 abc
abc 789 bcd
bcd 456 acb
acb 135
私はawkを使用することを好みます。
ベストアンサー1
前の行を覚えておいてください。
awk 'NR > 1 { print prev, $1 } { prev = $0 } END { print prev }'
これは入力を次のように処理します。
- 現在の行が2行目以上の場合は、前の行(に保存されている次のステップを参照
prev
)と現在の行の最初のフィールドを出力フィールドの区切り文字で区切って印刷します(デフォルトは空白文字です)。 - すべての場合で、現在の行を
prev
変数に保存します。 - ファイルの最後に前の行を印刷します。