我正在尝试使用sed删除空行:
sed '/^$/d'
但我运气不佳。
例如,我有这样几行:
xxxxxx
yyyyyy
zzzzzz
我希望它是这样的:
xxxxxx
yyyyyy
zzzzzz
这个的代码应该是什么?
我正在尝试使用sed删除空行:
sed '/^$/d'
但我运气不佳。
例如,我有这样几行:
xxxxxx
yyyyyy
zzzzzz
我希望它是这样的:
xxxxxx
yyyyyy
zzzzzz
这个的代码应该是什么?
当前回答
NF是awk的命令,可用于删除文件中的空行 awk NF文件名 通过使用sed Sed -r "/^\r?美元/ d”
其他回答
您正在尝试的命令是正确的,只需使用-E标志。
sed -E '/^$/d'
-E标志使sed捕获扩展正则表达式。更多信息请点击这里
在“空”行中可能有空格或制表符。使用POSIX类和sed删除所有只包含空格的行:
sed '/^[[:space:]]*$/d'
一个使用ERE的短版本,例如gnu sed:
sed -r '/^\s*$/d'
(注意sed不支持PCRE。)
借助这里的公认答案和上面的公认答案,我使用了:
$ sed 's/^ *//; s/ *$//; /^$/d; /^\s*$/d' file.txt > output.txt
`s/^ *//` => left trim
`s/ *$//` => right trim
`/^$/d` => remove empty line
`/^\s*$/d` => delete lines which may contain white space
这涵盖了所有的基础,完美地满足了我的需求。向最初的海报致敬@肯特和@凯文
你也可以使用"grep"来做类似的事情:
egrep -v "^$" file.txt
Sed '/^$/d'应该是好的,你期望修改文件到位吗?如果是这样,您应该使用-i标志。
也许这些行不是空的,如果是这样的话,看看这个问题从txtfiles中删除空行,从行开始和行结束删除空格,我相信这就是你想要达到的目的。