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

我將如何使用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
相關文章
相關標籤/搜索