最後の行の上に新しい行を作成して内容を追加します。

最後の行の上に新しい行を作成して内容を追加します。

反対側と同様に、awk 'NR==2 {print ""} 1最初の行の下に新しい行を追加し、そこにある内容をすべて印刷します。NR==複数行を含むファイルでこれを実行できるようにしたいので、次の数字を固定値に置き換えることはできません。私の言葉は、行数を計算してから2番目から最後の行の数である変数を生成することを実行できますが、「ホイールを再発明」したくないことを意味します。

入力例:

1
2
3
4

出力例:

1
2
3
something added here
4

ベストアンサー1

1行ずつ印刷を遅らせてから、ENDブロックを使用できます。

awk 'NR > 1 {print line} {line = $0} END {printf "%s\n%s\n", "something added here", line}'

現在の行を保存lineし、次の繰り返しで印刷します。ENDしたがって、lineこのブロックの最後の行はまだ印刷されていません。

$ printf "%s\n" {1..4} | awk 'NR > 1{print line} {line = $0} END {printf "%s\n%s\n", "something added here", line}'
1
2
3
something added here
4

おすすめ記事