如果要在 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 實現:
|
1 2 3 4 5 6 7 |
#!/bin/sh input="/path/to/test/*.txt" for i in input do sed -i '/^$/d' $i done |
以上 Shell Script 會將 /path/to/test/ 目錄下, 所有 “.txt” 副檔名的檔案, 刪除空白行。