相关文章推荐
知识渊博的帽子  ·  scrapy ...·  3 周前    · 
知识渊博的帽子  ·  Anonymous user has no ...·  7 月前    · 
知识渊博的帽子  ·  开源C# ...·  8 月前    · 
知识渊博的帽子  ·  Project Converter ...·  8 月前    · 
知识渊博的帽子  ·  [Solved] Chicken and ...·  9 月前    · 
知识渊博的帽子  ·  The Basics — CVX ...·  9 月前    · 
俊秀的手套  ·  Qt | 显示网络图片 ...·  1小时前    · 
失恋的青椒  ·  20.5 OpenSSL ...·  1小时前    · 
爱旅游的帽子  ·  20.1 OpenSSL ...·  1小时前    · 
爱健身的跑步鞋  ·  机电产品进口管理办法·  2 小时前    · 
飘逸的马克杯  ·  【GIT SourceTree】_<git ...·  2 小时前    · 
博学的豌豆  ·  Team Foundation ...·  2 小时前    · 

以下命令将查找字符串的所有出现并删除找到此字符串的文件的内容.

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

标签:linux,grep,sed,find

来源: https://codeday.me/bug/20190729/1569959.html

以下命令将查找字符串的所有出现并删除找到此字符串的文件的内容.find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} \; -exec sed -i '/./d' {} \;我已经尝试修改它只是删除找到字符串的行但无法使其工作.例如测试文件:blah blah blahblah blah blah teststring...
Linux 使用 grep 删除 两个文件相同部分 首先描述一下这个问题:比如两个文件file1和file2, 删除 两个文件中共同的部分,留下两个文件中独自有的部分 1、已知俩文件 内容 [root@ grep ~]# cat 1.txt [root@ grep ~]# cat 2.txt 将函数或者变量替换定义在一个文件中,如函数可以定义在.fun文件中,然后在.sh脚本中,用“."加载,然后直接调用函数,如果:db.fun。定义函数可带参数,函数中的 $1,$2,$3…… 表示接受的第一个,第二个,第三个……参数。如:create_station_db 20 11 $1就是20 $2就是 11. grep 'xxx' filename1 filename2 filename3 ...或者通配符文件也可 *.log 3、 查找 内容 在文件中的 数,可以使用参数-n,例: grep -n 'xxx' filename 忽略大小写问题,可以使用参数“-i” 文件 内容 查找 不匹配指定字符串的 ,可以使用参数“-v” 4、 删除 文件某一 ,例: sed -i "nd" fil.
 
推荐文章