使用sed命令删除文件中的空行是什么?

4
  • 如何使用sed命令删除文件中的空行。
  • 如何使用命令 (sed 命令?) 删除文件夹中的空文件。

你想要实现什么?你想如何实现它?使用哪种编程语言?PHP? - Fender
@Fender:语言:sed。想要实现的目标:删除空行。 - user unknown
要删除空文件,您可能会使用 find folder -maxdepth 1 -size 0 -exec rm {} +(或者使用 -printxargs 或者更好的是,如果您的 findxargs 组合支持它,则使用 -print0xargs -0),甚至可以用 ; 替换 +,如果您的 find 不支持 +,只要速度不是太关键。(注意:-maxdepth 是 GNU find 对 POSIX find 的扩展。) - Jonathan Leffler
1
@JonathanLeffler:Gnu find:“find directory -empty -delete”- 无需xargs技巧。 - user unknown
请点击此处查看:http://theunixshell.blogspot.in/2013/01/deleting-empty-lines-from-file.html - Vijay
3个回答

12

你需要使用 'd' 删除操作。

Ex:

 sed -i '/^$/d' test

-i - 用于影响文件。

^ - 是行的开头

$ - 是行的结尾

d - 如果存在空行,则删除该行

希望这能帮到你。


在这种情况下,“^”表示行的开头,“$”表示行的结尾。“d”命令将删除所有以指定前缀正则表达式匹配的行。 - Julian

2

/^$/d应该可以解决这个问题。

例如:

sed -i -e "/^$/d" myfile.txt

如果您想对文件夹中的所有文件执行此操作:

sed -i -e "/^$/d" *

-i表示“就地编辑”,没有它,文件将被编辑并发送到标准输出。原始文件将不会被修改。


你不应该指定myfile.txt,而是要使用$i。例如:sed -i -e "/^$/d" $i。其中$i代表文件名。 - sat

1
sed -e 's/#.*//;/^\s*$/d' /etc/lvm/lvm.conf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接