use*_*981 3 linux grep sed find
以下命令将查找字符串的所有出现并删除找到此字符串的文件的内容.
find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} \; -exec sed -i '/./d' {} \;
Run Code Online (Sandbox Code Playgroud)
我已经尝试修改它只是删除找到字符串的行但无法使其工作.
例如测试文件:
blah blah blah
blah blah blah teststring
teststringblah blah blah
blah blah blah
Run Code Online (Sandbox Code Playgroud)
它将删除第2行和第3行,并将文件保留为行之间没有间隙:
blah blah blah
blah blah blah
Run Code Online (Sandbox Code Playgroud)
grep
这里不需要sed -i '/teststring/Id' file
删除file
包含的所有行teststring
(不区分大小写),所以只需将它与find
:
find . -maxdepth 1 -xdev -type f -exec sed -i '/teststring/Id' {} \;
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4520 次 |
最近记录: |