如何从文本文件中删除不以某些字符开头的行(sed或grep)

时间:2013-04-04 22:36:34

标签: text sed grep

如何删除文本文件中不以字符#&*开头的所有行?我正在寻找使用sedgrep的解决方案。

3 个答案:

答案 0 :(得分:2)

删除行

使用grep

来自http://lowfatlinux.com/linux-grep.html

  

grep 命令从与模式匹配的文件(或一堆文件)中选择并打印行。

我认为你可以这样做:

grep -v '^[\#\&\*]' yourFile.txt > output.txt

你也可以使用sed做同样的事情(检查http://lowfatlinux.com/linux-sed.html):

sed '^[\#\&\*]/d' yourFile.txt > output.txt

由你来决定


过滤行

我的错误,我知道你想要删除这些行。但是如果你想“删除”所有其他行(或过滤以指定字符开头的行),那么grep就是要走的路:

grep '^[\#\&\*]' yourFile.txt > output.txt

答案 1 :(得分:2)

egrep '^(&|#|\*)' input.txt > output.txt

答案 2 :(得分:0)

sed -n '/^[#&*].*/p' input.txt > output.txt

这应该有效。

 sed -ni '/^[#&*].*/p' input.txt

这个将直接编辑输入文件,小心+