为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

删除文本文件中包含特定字符串的行如何使用sed删除文本文件中包含特定字符串的所有行?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超12个赞

若要删除该行并将输出打印为标准输出,请执行以下操作:

sed '/pattern to match/d' ./infile

若要直接修改文件,请执行以下操作:

sed -i '/pattern to match/d' ./infile

要直接修改文件(并创建备份):

sed -i.bak '/pattern to match/d' ./infile

对于MacOSX和FreeBSD用户:

sed -i '' '/pattern/d' ./infile


查看完整回答
反对 回复 2019-06-19
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

除了删除具有特定字符串的行之外,还有许多其他方法可以删除行。sed:

AWK

awk '!/pattern/' file > temp && mv temp file

Ruby(1.9+)

ruby -i.bak -ne 'print if not /test/' file

Perl

perl -ni.bak -e "print unless /pattern/" file

shell(bash 3.2及更高版本)

while read -r linedo
  [[ ! $line =~ pattern ]] && echo "$line"done <file > o
mv o file

GNUgrep

grep -v "pattern" file > temp && mv temp file

当然还有sed(打印反向比实际删除快):

sed -n '/pattern/!p' file


查看完整回答
反对 回复 2019-06-19
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您可以使用sed替换文件中的行。但是,它似乎比将grep用于逆文件,然后将第二个文件移动到原始文件中要慢得多。

G.

sed -i '/pattern/d' filename

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

无论如何,第一个命令在我的机器上要花费3倍的时间。


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 3883 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信