我需要从文件中删除空行(只有空格 - 不是空记录)。
以下命令仅适用于空行,但不适用于空格:
sed '/^$/d' filename
可以使用 grep 完成吗?
用于\s*
仅包含空格的空行:
sed '/^\s*$/d' file
要将更改保存回文件,请使用以下-i
选项:
sed -i '/^\s*$/d' file
编辑:
正则表达式^\s*$
匹配仅包含空格的行,grep -v
打印与给定模式不匹配的行,因此以下将打印所有非黑色行:
grep -v '^\s*$' file
sed -i '/^[ \t]*$/d' file-name
它将删除所有没有任何空行的空行。空白(空格或制表符),即文件中的(0个或更多)..
注意:方括号内有一个“空格”后跟“\ t”...
" -i
" 将强制将更新的内容写回文件中...没有此标志,您可以看到屏幕上的空行已被删除,但实际文件不会受到影响。
POSIX 可移植的方法是
sed -i '/^[[:blank:]]*$/d' file
或者
grep -v '^[[:blank:]]*$' file
碰巧该文件是从 Windows 机器复制的 sed 命令 (sed '/^$/d' foo ) 没有正确运行。
我运行了以下命令并且它起作用了。
$ dos2unix 富