linux shell之paste合并文件和找到匹配的文件里面替换内容(find和-exec或xargs组合)

举报
chenyu 发表于 2021/07/27 00:06:16 2021/07/27
1.9k+ 0 0
【摘要】 1 问题 1)合并2个文件,这里用paste命令 2)找到匹配的文件里面替换内容,这里用find 和 -exec或xargs命令组合         2 实现 1)合并2个文件,这里用paste命令,我们在paste后面加参数-d 然后加" ",表示文件之间内容隔着空格,“,”表示文件之间内容隔着内容 cat...

1 问题

1)合并2个文件,这里用paste命令

2)找到匹配的文件里面替换内容,这里用find 和 -exec或xargs命令组合

2 实现

1)合并2个文件,这里用paste命令,我们在paste后面加参数-d 然后加" ",表示文件之间内容隔着空格,“,”表示文件之间内容隔着内容


      cat 1.txt
      1
      2
      3
      4
      5
      6
      cat 2.txt
      chenyu
      chengongyu
      hello
      paste 1.txt 2.txt -d ','
      1,chenyu
      2,chengongyu
      3,hello
      4,
      5,
      6,
      paste 1.txt 2.txt -d ' '
      1 chenyu
      2 chengongyu
      3 hello
      4
      5
      6
  
 

2)把当前目录下的cpp文件里的chenyu替换成hello(find和-exec组合)


      cat 1.cpp
      chenyu
      chengongyu
      chenzixuan
      chenyu
      cat 2.cpp
      chenyu
      chenzixuan
      chengongyu
      chenyu
      cat 3.cpp
      chenyu
      chencaifeng
      chengongyu
      cat 4.cpp
      chenyu
      chengong
      chenyu
      chencaifeng
      find . -name "*.cpp" -exec sed -i 's/chenyu/hello/' {} \;
      cat 1.cpp 2.cpp 3.cpp 4.cpp
      hello
      chengongyu
      chenzixuan
      hello
      hello
      chenzixuan
      chengongyu
      hello
      hello
      chencaifeng
      chengongyu
      hello
      chengong
      hello
      chencaifeng
  
 

3)把当前目录下的cpp文件里的hello替换成chenyu(find和xargs组合)


      find . -name "*.cpp" | xargs sed -i 's/hello/chenyu/'
      cat 1.cpp 2.cpp 3.cpp 4.cpp
      chenyu
      chengongyu
      chenzixuan
      chenyu
      chenyu
      chenzixuan
      chengongyu
      chenyu
      chenyu
      chencaifeng
      chengongyu
      chenyu
      chengong
      chenyu
      chencaifeng
  
 

3 要注意的地方

1)使用sed命令的时候要记得参数加-i,然后后面一般是's/pattern/replace_str/'  而不是's/pattern/replace_str'  忘记最后一个左斜杠会报错 

2)我们使用-exec的时候一般模式是下面的

-exec commond {} \;   这个{}和\;不能挨着一起,同时\;不能分开,比如\ ;也会有问题

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/88630069

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。