linux shell之paste合并文件和找到匹配的文件里面替换内容(find和-exec或xargs组合)
【摘要】 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)