【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
我将如何使用sed删除文本文件中包含特定字符串的所有行?
#1楼
您可以使用sed替换文件中的行。 但是,这似乎比使用grep取反将其慢进第二个文件,然后将第二个文件移到原始文件上要慢得多。
例如
sed -i '/pattern/d' filename
要么
grep -v "pattern" filename > filename2; mv filename2 filename
无论如何,第一个命令在我的计算机上花费的时间要长3倍。
#2楼
perl -i -nle'/regexp/||print' file1 file2 file3
perl -i.bk -nle'/regexp/||print' file1 file2 file3
第一个命令就地编辑文件(-i)。
第二个命令执行相同的操作,但是通过在文件名中添加.bk来保留原始文件的副本或备份(.bk可以更改为任何内容)。
#3楼
使用GNU sed的简单方法:
sed --in-place '/some string here/d' yourfile
#4楼
您还可以使用以下命令:
grep -v 'pattern' filename
在这里-v将仅打印您的模式以外的其他内容(这意味着反转匹配)。
#5楼
要使用grep获得类似结果的结果,您可以执行以下操作:
echo "$(grep -v "pattern" filename)" >filename
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3149150