我將如何使用sed刪除文本文件中包含特定字符串的全部行? spa
您能夠使用sed替換文件中的行。 可是,這彷佛比使用grep取反將其慢進第二個文件,而後將第二個文件移到原始文件上要慢得多。 code
例如 regexp
sed -i '/pattern/d' filename
要麼 字符串
grep -v "pattern" filename > filename2; mv filename2 filename
不管如何,第一個命令在個人計算機上花費的時間要長3倍。 string
perl -i -nle'/regexp/||print' file1 file2 file3 perl -i.bk -nle'/regexp/||print' file1 file2 file3
第一個命令就地編輯文件(-i)。 sed
第二個命令執行相同的操做,可是經過在文件名中添加.bk來保留原始文件的副本或備份(.bk能夠更改成任何內容)。 file
使用GNU sed
的簡單方法: perl
sed --in-place '/some string here/d' yourfile
您還能夠使用如下命令: grep
grep -v 'pattern' filename
在這裏-v
將僅打印您的模式之外的其餘內容(這意味着反轉匹配)。 方法
要使用grep
得到相似結果的結果,您能夠執行如下操做:
echo "$(grep -v "pattern" filename)" >filename