Unix 从文件中删除空行

Unix 从文件中删除空行,unix,sed,grep,Unix,Sed,Grep,我需要从文件中删除空行(仅限空格-不包括空记录) 以下命令仅适用于空行,但不适用于空行 空间: sed'/^$/d'文件名 可以使用grep吗?对于只包含空格的空行使用\s*: sed '/^\s*$/d' file 要将更改保存回文件,请使用-i选项: sed -i '/^\s*$/d' file 编辑: regex^\s*$匹配只包含空格的行,grep-v打印与给定模式不匹配的行,因此以下命令将打印所有非黑色行: grep -v '^\s*$' file 该文件是从Window

我需要从文件中删除空行(仅限空格-不包括空记录)

以下命令仅适用于空行,但不适用于空行 空间:

sed'/^$/d'文件名


可以使用grep吗?

对于只包含空格的空行使用
\s*

 sed '/^\s*$/d' file 
要将更改保存回文件,请使用
-i
选项:

sed -i '/^\s*$/d' file 
编辑:

regex
^\s*$
匹配只包含空格的行,
grep-v
打印与给定模式不匹配的行,因此以下命令将打印所有非黑色行:

 grep -v '^\s*$' file

该文件是从Windows计算机a复制的,但sed命令(sed'/^$/d'foo)未正确运行

我按照命令运行,它成功了

$dos2unix foo

sed -i '/^[ \t]*$/d' file-name
它将删除文件中任何数量的空白行(空格或制表符),即(0或更多)

注意:方括号内有一个空格,后跟“\t”


-i
”将强制将更新的内容写回文件中。。。如果没有此标志,您可以在屏幕上看到已删除的空行,但实际文件不会受到影响。

POSIX便携式方法是

sed -i '/^[[:blank:]]*$/d' file


如果你知道空白行没有空白,那么你可以将GRIP减少到<代码> GRIP。文件。为了完整起见:
awk'NF'文件
\s
将在许多Unix机器上失败(可能是GNUism或perlism)。相反,应该使用POSIX类
[:blank://code>或
[:space://code>
grep -v '^[[:blank:]]*$' file