码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本学习(3)替换

时间:2019-09-12 18:21:25      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:打印   inf   参考   pre   使用   ssi   font   ima   strong   

1 sed 替换  

1格式:

  ‘s/原字符串/新字符串/‘   输入源    

2正确参考:

sed ’s/as/AS/ do.txt 

  改变字符串as为AS,不会改输入源的文件。

  匹配每行第一次匹配的位置。

 sed ’s/as/AS/ do.txt

技术图片

 技术图片

 

         指定匹配每行第二个被匹配的数据, 用/n来指定匹配第几个

 sed ’s/as/AS/2 do.txt

技术图片

 每行的第二个as变成了AS

 

         配合g命令,全部匹配, 设置文件中所有匹配的位置,修改完全部的as都被替换成AS了

 技术图片

 

3 错误参考:

注意尾部有/  , 试了一个上午一直没成功, 原来是少了/

yuyuyu@ubuntu:~$sed ’s/as/AS‘ do.txt
sed: -e expression #1, char 10: unterminated `s‘ command

5 界定符, 一般是用/  ,但也可以用 ; : , 分号,冒号, 逗号等

比如像把留着当目录, 符号用, 可以在‘s;;;’   s/改成s;

技术图片

sed s;0x50;0x60; do.txt

技术图片

 

6 配合区域保存, \(\)

输入一个目录, 然后用区域存储,以及引用 \1 修改这个目录的子目录

yuyuyu@ubuntu:~$ 

echo /home/yuyuyu/ | sed s;\(/home\)/yuyuyu/;\1/zhangzhang/;

技术图片

 

7 sed -e命令, 执行多次匹配。

yuyuyu@ubuntu:~$ sed ‘s/as/AS/2‘ do.txt
技术图片

 

8 sed -f命令, 把编辑命令放到文本里读出来执行,批量处理sed的编辑命令

创建一个test_sed文本

yuyuyu@ubuntu:~$ cat test_sed 
s/as/AS/2
s/df/DF/

 使用读取sed脚本命令:

yuyuyu@ubuntu:~$ sed -f test_sed do.txt 

脚本想要替换as  和df , 结果显示都替换成功了。

技术图片

 

9 sed -n命令,关闭修改结果, 只打印 带p的行

测试了下, -n命令, 结果什么都没输出到result.txt

 sed -n s/as/AS/2 <do.txt > result.txt

 

如果在 尾部加入p就能够打印被修改的行了

yuyuyu@ubuntu:~$ sed -n s/as/AS/2p <do.txt > result.txt

技术图片

技术图片

 

 10 sed 的指定行的用法

sed 只对含有特定行的位置操作

sed /fd/ s/as/AS/ <do.txt

 技术图片

 

 

sed 只对不含有特定行的位置操作

sed /fd/ !s/as/AS/ <do.txt

 

 技术图片

 

shell脚本学习(3)替换

标签:打印   inf   参考   pre   使用   ssi   font   ima   strong   

原文地址:https://www.cnblogs.com/mayplestory/p/11513191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!