Linux 技术手札

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” 副档名的档案, 删除空白行。

Exit mobile version