如果要在 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” 副档名的档案, 删除空白行。
stackoverflow 看到的
awk NF filename