sed基本用法 sed文本块处理 、 sed高级应用

NSD SHELL DAY05

案例1:sed基本用法
案例2:使用sed修改系统配置
案例3:sed多行文本处理
案例4:sed综合脚本应用
1 案例1:sed基本用法
1.1 问题

本案例要求熟悉sed命令的p、d、s等常见操作,并结合正则表达式,完成以下任务:
删除文件中每行的第二个、最后一个字符
将文件中每行的第一个、第二个字符互换
删除文件中所有的数字
为文件中每个大写字母添加括号
1.2 方案

sed文本处理工具的用法:
用法1:前置命令 | sed [选项] ‘条件指令’
用法2:sed [选项] ‘条件指令’ 文件.. ..
相关说明如下:
条件可以是行号或者/正则/
没有条件时,默认为所有条件
指令可以是增、删、改、查等指令
默认sed会将所有输出的内容都打印出来,可以使用-n屏蔽默认输出
选项中可以使用-r选项,让sed支持扩展正则
1.3 步骤

实现此案例需要按照如下步骤进行。
步骤一:认识sed工具的基本选项

sed命令的常用选项如下:
-n(屏蔽默认输出,默认sed会输出读取文档的全部内容)
-r(让sed支持扩展正则)
-i(sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)
1)sed命令的 -n 选项
执行p打印等过滤操作时,希望看到的是符合条件的文本。但不使用任何选项时,默认会将原始文本一并输出,从而干扰过滤效果。比如,尝试用sed输出/etc/hosts的第1行:
[root@svr5 ~]# sed ‘1p’ /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
可以发现所有的行都被显示出来了(第1行重复2次)。—— 正确的用法应该添加 -n 选项,这样就可以只显示第1行了:
[root@svr5 ~]# sed -n ‘1p’ /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
行号可以是连续的行号,如打印passwd第3到第6行账户的信息:
[root@svr5 ~]# sed -n ‘3,6p’ /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
2)sed命令的 -i 选项
正常情况下,sed命令所做的处理只是把操作结果(包括打印、删除等)输出到当前终端屏幕,而并不会对原始文件做任何更改:
[root@svr5 ~]# sed ‘d’ /etc/passwd //删除所有行
[root@svr5 ~]# cat /etc/passwd //查看原始文本,并未改动
若希望直接修改文件内容,应添加选项 -i 。
比如,直接删除test.txt(自行创

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值