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 {} \; 这个{}和\;不能挨着一起,同时\;不能分开,比如\ ;也会有问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。