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

我将如何使用sed删除文本文件中包含特定字符串的全部行? spa


#1楼

您能够使用sed替换文件中的行。 可是,这彷佛比使用grep取反将其慢进第二个文件,而后将第二个文件移到原始文件上要慢得多。 code

例如 regexp

sed -i '/pattern/d' filename

要么 字符串

grep -v "pattern" filename > filename2; mv filename2 filename

不管如何,第一个命令在个人计算机上花费的时间要长3倍。 string


#2楼

perl -i    -nle'/regexp/||print' file1 file2 file3
perl -i.bk -nle'/regexp/||print' file1 file2 file3

第一个命令就地编辑文件(-i)。 sed

第二个命令执行相同的操做,可是经过在文件名中添加.bk来保留原始文件的副本或备份(.bk能够更改成任何内容)。 file


#3楼

使用GNU sed的简单方法: perl

sed --in-place '/some string here/d' yourfile

#4楼

您还能够使用如下命令: grep

grep -v 'pattern' filename

在这里-v将仅打印您的模式之外的其余内容(这意味着反转匹配)。 方法


#5楼

要使用grep得到相似结果的结果,您能够执行如下操做:

echo "$(grep -v "pattern" filename)" >filename
相关文章
相关标签/搜索