現在行の横にある行の最初の列を印刷するには?

現在行の横にある行の最初の列を印刷するには?

次のファイルがあります。

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変数に保存します。
  • ファイルの最後に前の行を印刷します。

おすすめ記事