我将如何使用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