Linux 下刪除檔案空白行

如果要在 Linux 下將現有的檔案, 刪除裡面的所有空白行, 可以用 Linux 內建的工具即可實現。

sed 指令

用 sed 指令即可刪除檔案內的空白行:

$ sed -i ‘/^$/d’ input.txt

如果想將刪除空白行後的內容, 匯入到新檔案, 要改成這樣:

$ sed ‘/^$/d’ input.txt > output.txt

有些空白行會包含一些空白字元, 例如 SPACE 或 TAB, 上面指令不會刪除, 如果想連同只包含這類空白字元的行都刪除, 要改成這樣:

$ sed ‘/^\s*$/d’ input.txt > output.txt

grep 指令

另一個方法是用 grep 指令:

$ grep -v ‘^$’ input.txt > output.txt

grep 及 sed 同樣使用 ^$ 對空白行匹配, grep 的 “-v” 參數表示印出 “不是” 空白行。

如果想將目錄下所有 .txt 檔案, 裡面的空白行刪除, 可以用簡單的 Shell Script 實現:

以上 Shell Script 會將 /path/to/test/ 目錄下, 所有 “.txt” 副檔名的檔案, 刪除空白行。




Latest Comments

  1. 1023 12 October 2016

Leave a Reply