次のコマンドを使用すると、すべての\n
行に追加されますが、空白行はスキップされます。
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}'
例: 次のように入力します。
George Washington, 1789-1797
John Adams, 1797-1801
Thomas Jefferson, 1801-1809
出力:
George Washington, 1789-1797\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n
予想される出力:対\n\n
George Washington, 1789-1797\n\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n
答え1
NF
ブロック前の条件は具体的には次のとおりprintf
です。言うawk は空行をスキップします。そうしたくない場合は、そうするように言わないでください。
$ awk '{sub(/\r/, ""); printf "%s\\n",$0}' file
George Washington, 1789-1797\n\nJohn Adams, 1797-1801\nThomas Jefferson, 1801-1809\n$
ただし、sub()
目的がDOS行の終わりを削除することである場合は、代わりsub(/\r$/, "")
にこれを実行する必要があるため、行の終わりからsをsub(/\r/, "")
削除するだけです。\r