删除包含带空格的文本的行

时间:2014-03-27 15:44:18

标签: regex linux sed

所以我有一个非常大的文件,我通过组合一些单词列表创建。问题是我错误地在组合和排序之前没有清理原始单词列表,因此在整个文件中有许多行,包括句子,ASCII艺术或其他我不知道的信息。想要在那里。

目前,我想删除包含一个或多个空格的任何行。我不想删除这些空格,如果它有空格,我想删除整行。

我对正则表达式很可怕,并希望有人可以帮助我。

感谢。

2 个答案:

答案 0 :(得分:2)

有短命令

sed -e '/\s/d'

它使用脚本/\s/d运行sed,这意味着

  • 匹配/\s/的每一行(至少有一个空格或标签)
  • 运行命令d - 删除行

因此,只会保存没有任何空格的行。

此命令不会删除空行。

使用它像:

sed -e '/\s/d' < input_file.txt > output_file.txt

答案 1 :(得分:2)

我想空格的倒置grep会完成这项工作:

cat your_file.txt | grep -v ' ' > output.txt

它将过滤文件,删除任何带空格的行。