我有一个文件(hosts)其中有些行没有内容,我该如何删除这些没有内容的行?
答案1
使用 sed
键入以下命令:
sed '/^$/d' input.txt > output.txt
使用 grep
键入以下命令:
grep -v '^$' input.txt > output.txt
答案2
很多方法:
使用
sed
并编辑该文件。sudo sed -i -rn '/\S/p' /etc/hosts
相同,但使用 Perl:
sudo perl -i -ne 'print if /\S/' /etc/hosts
GNU 的新版本
awk
再次到位:sudo awk -i inplace '/\S/' file
上述所有解决方案还将删除只包含空格的行。如果您只想删除空行,并保留包含空格或制表符等的行,请将上述所有示例中的更改/\S/
为。/^$/
答案3
有时,如果行中包含空格,其他命令将无法删除空白行。下面的命令将删除所有空白行,包括仅包含空格的行。
grep -v '^[[:space:]]*$' input.txt > output.txt
答案4
您可以在默认的 Ubuntu 文本编辑器 (gedit) 中执行此操作:
- 按
Ctrl
+H
打开“查找和替换” - 在“查找”框中输入,
\n\n
表示两行新行,中间没有文本。 - 在“替换”框中输入
\n
- 点击“全部替换”
如果文本文件是在 Windows 中生成的,您可能想尝试一下\r\n
。