shell笔记4

1.shell编程-sed
sed是一种在线非交互式编辑器,一次处理一行内容。这样不断重复,直到文件末尾。
sed主要用来编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
支持正则表达式
与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字符,用于查找和替换,以下是sed支持的元字符:
使用基本元字符集 ^, ¥, ., *, [], [^], < >,() 前面这个应该是英文的金币符号
使用扩展元字符集 ?, +, { }, |, ( )
sed基本用法
语法:
sed -r ‘匹配内容’ file_name
-r:支持扩展正则,在实际使用的时候,都会加上-r参数,即使没有用的扩展正则也不会有任何影响。
1.1替换每一行的MA的将第一个替换Assachusetts
sed -r ‘s/MA/Massachusetts/’ test.txt
1.2搜索每一行进行全局替换
sed -r ‘s/MA/Massachusetts/g’ test.txt
1.3搜索每一行进行全局替换并且不区分大小写
sed -r ‘s/MA/Massachusetts/gi’
1.4 -n 静默输出(不打印默认输出)
2.多重编辑选项
2.1 使用多重指令: -e 给予sed多个命令的时候需要-e选项
sed -r -e ‘s/MA/Massachusetts/’ -e ‘s/PA/Pennsylvania/’ test.txt
2.2 使用脚本文件 -f
sed -f s.sed test.txt
3.地址(定址)
地址用于决定对那些行进行编辑。地址形式可以是数字、正则表达式或二者的结合。如果没有指定地址。sed将处理输入文件中的所有行
sed -r ‘1d’ passwd #d:表示删除-- 删除文件的第1行 #passwa 是目标文件
sed -r ‘1,2d’ passwd #删除文件的第1-2行
sed -r ‘2,$d’ passwd #删除第2行到最后一行
sed -r ‘/^root/d’ passwd #匹配到root开头的行,删除此行
sed -r ‘/root/d’ passwd #含有root的行都删除
sed -r ‘/bash/,3d’ passwd #匹配到bash行,从此行到第3行删除
sed -r ‘1~2d’ passwd #删除奇数行,间隔两行删除
sed ‘0~2d’ passwd #删除偶数行,从0开始间隔2行删除

4.sed流编译器命令用法及解析
4.1插入命令–i
[root@localhost ~]# sed -r ‘2i\222222’ passwd #在第2行插入
4.2修改命令—c
[root@localhost ~]# sed -r ‘4c\asfasdf’ passwd
[root@localhost ~]# sed -r ‘4c\11111111
> aaaaaaaaaa
> bbbbbbbbb’ passwd
4.3选项 -i 会使得sed用**修改后的数据替换原文件
4.4.由于在使用 -i 参数时比较危险, 所以我们在使用i参数时在后面加上.bak就会产生一个备份的文件,以防后悔

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值