linux – 如何grep整行,传递给sed,删除行?
发布时间:2020-12-14 00:04:34 所属栏目:Linux 来源:网络整理
导读:以下命令将查找字符串的所有出现并删除找到此字符串的文件的内容. find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} ; -exec sed -i '/./d' {} ; 我已经尝试修改它只是删除找到字符串的行但无法使其工作. 例如测试文件: blah blah b
以下命令将查找字符串的所有出现并删除找到此字符串的文件的内容.
find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} ; -exec sed -i '/./d' {} ; 我已经尝试修改它只是删除找到字符串的行但无法使其工作. 例如测试文件: blah blah blah blah blah blah teststring teststringblah blah blah blah blah blah 它将删除第2行和第3行,并将文件保留为行之间没有间隙: blah blah blah blah blah blah 解决方法
这里不需要grep sed -i’/ teststring / Id’文件删除文件中包含teststring(不区分大小写)的所有行,所以只需将它与find结合使用:
find . -maxdepth 1 -xdev -type f -exec sed -i '/teststring/Id' {} ; sed演示: $cat file blah blah blah blah blah blah teststring teststringblah blah blah blah blah blah $sed '/teststring/Id' file blah blah blah blah blah blah (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |