Bash
AWK 命令忽略為空白行添加以“n”結尾的換行符並在一行中列印
當我使用以下命令時,它會添加
\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
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$/, "")
,sub(/\r/, "")
所以你只刪除行尾\r
的 s。