sed删除空行方式

GUN下sed删除空格

最常见的一种:

1
sed '/^$/d' file.txt

1.说明

  • /^$/:正则匹配空行,表示“行首紧跟行尾”,即没有内容。
  • dsed 的 delete 命令,删除匹配到的行。

2. 示例

假设 file.txt 内容如下:

line 1

line 2

line 3

运行:

1
sed '/^$/d' file.txt

输出:

line 1
line 2
line 3

保存到原文件(覆盖原文件)

注意:-i 会直接修改文件,建议先备份。

1
2
sed -i '/^$/d' file.txt        # Linux
sed -i '' '/^$/d' file.txt # macOS(BSD sed)

删除包含空白字符的“空行”(比如空格或Tab)

如果你想删除只包含空格、制表符等的“看似空”的行,用这个更通用的写法:

1
sed '/^[[:space:]]*$/d' file.txt
  • ^[[:space:]]*$:匹配仅由空格、Tab 等组成的行。