您的位置:首页 > 运维架构 > Linux

Linux学习笔记_三剑客命令的sed命令复习(sed的替换功能用法)

2017-08-14 21:01 501 查看
需求:把目录下的所有.sh文件中的内容替换

实现:

ls /data
a.txt  b.sh  c.sh  d.info

方法1

-----------------------------------------------------------

先查看替换前内容

find -type f -name "*.sh" |xargs cat    

before

before

测试替换结果,sed无参数时仅打印输出

find -type f -name "*.sh" |xargs sed 's#before#after#g'    

after

after

-i参数为在文件中进行替换修改

find -type f -name "*.sh" |xargs sed -i 's#before#after#g'   

查看替换后内容

find -type f -name "*.sh" |xargs cat   

after
after

注:
|xargs 理解为将管道前输出处理成后续命令的参数(汇成单行)输入
若直接 |cat,则cat只会把管道前的输出当作文本处理
-----------------------------------------------------------

方法2
-----------------------------------------------------------
sed -i 's#before#after#g' `find -type f -name "*.sh"`

等价于:
sed -i 's#before#after#g' /data/b.sh /data/c.sh

注:
``符号内的内容先执行
``符号为“Tab键”上面的按键符号,反引号(?)
-----------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos linux