如何删除文本文件中不以字符#
,&
或*
开头的所有行?我正在寻找使用sed
或grep
的解决方案。
答案 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
这个将直接编辑输入文件,小心+