如何删除不包含特定字符的行?

12 浏览
0 Comments

如何删除不包含特定字符的行?

举个例子,我想要在文本中删除所有不含字符'@'的行。我已经尝试使用sed命令,像这样:sed '/@/!d' data.txt。我错过了什么?这应该起作用吗?

0
0 Comments

我更喜欢使用ed而不是非标准的sed -i,尤其是在需要可移植性的情况下:

printf "%s\n" "v/@/d" w | ed -s filename

这个命令会删除所有不包含@字符的行,并将修改后的文件保存回磁盘。

0
0 Comments

问题的出现的原因是用户想要从一个文件中移除不包含特定字符的行。用户使用的解决方法是使用sed命令,并结合特定的选项和参数来实现目标。

用户使用的命令是sed -n '/@/p' [file]。下面是对命令中各部分的解释:

- -n选项用于抑制sed默认的打印行为。

- /@/是用来匹配包含@字符的行。

- p是用来打印匹配的行。

如果用户想要直接在原文件中进行修改,可以在命令中添加-i选项。

以上就是用户遇到问题的原因以及解决方法的整理。通过使用sed命令以及特定的选项和参数,用户可以轻松地移除不包含特定字符的行。

0