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

本文详细介绍了sed命令的用法,包括基本操作如p、d、s,以及如何修改系统配置、处理多行文本和编写脚本应用。通过四个案例,读者将深入理解sed在文本处理中的强大功能,例如删除行、替换字符、处理多行文本和编写脚本自动化任务。
摘要由CSDN通过智能技术生成

NSD SHELL DAY05

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

1 案例1:sed基本用法

1.1 问题

本案例要求熟悉sed命令的p、d、s等常见操作,并结合正则表达式,完成以下任务:

  • 删除文件中每行的第二个、最后一个字符
  • 将文件中每行的第一个、第二个字符互换
  • 删除文件中所有的数字
  • 为文件中每个大写字母添加括号

1.2 方案

sed文本处理工具的用法:

 
  1. 用法1:前置命令 | sed [选项] '条件指令'
  2. 用法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行:

 
  1. [root@svr5 ~]# sed '1p' /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

可以发现所有的行都被显示出来了(第1行重复2次)。—— 正确的用法应该添加 -n 选项,这样就可以只显示第1行了:

 
  1. [root@svr5 ~]# sed -n '1p' /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

行号可以是连续的行号,如打印passwd第3到第6行账户的信息:

 
  1. [root@svr5 ~]# sed -n '3,6p' /etc/passwd
  2. bin:x:1:1:bin:/bin:/sbin/nologin
  3. daemon:x:2:2:daemon:/sbin:/sbin/nologin
  4. adm:x:3:4:adm:/var/adm:/sbin/nologin
  5. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

2)sed命令的 -i 选项

正常情况下,sed命令所做的处理只是把操作结果(包括打印、删除等)输出到当前终端屏幕,而并不会对原始文件做任何更改:

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值