删除文本文件中包含特定字符串的行

廉价感情. 提交于 2019-12-29 10:35:29

【推荐】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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!