sed命令几种常见用法

主要分别 增删改 几类

一、增加

1. sed 5a\zzzzzzz ./passwd
在第5行后加一行zzzzzzz(仅显示修改后的文件内容是什么样子,但不是真正的做了修改操作,如要真正修改文件内容,需要加-i参数)

2. sed -i 1a\zzzzzzz ./passwd
在第1行后加一行zzzzzzz(真操作)

3. sed 1i\zzzzzzz ./passwd
在第1行前加一行zzzzzzz(仅显示,不是真操作)

4. sed -i 1i\zzzzzzz ./passwd
在第1行前加一行zzzzzzz(真操作)

二、删除

5. sed -i 1d ./passwd
删除第1行(真操作)

6. sed 2d ./passwd
删除第2行(仅显示,不是真操作)

三、修改一行

7. sed 6c\aaaaaa ./passwd
把第6行的内容修改为aaaaaa(仅显示,不是真操作)

四、替换某行字符

8. sed 's/^root$/aaaaaa/2' ./passwd

不是真操作,将passwd文件中出现的第2个root字符替换为aaaaaa,2表示第二个,若2改为g,表示global全局修改
^和$ 分别表示以…为开头 给 以…为结尾

9. sed '2,5 s/^root$/aaaaaa/g' ./passwd

这个sed命令的整体意义是:
不是真操作,将passwd文件中出现的第2-5行中全部以root开头以root结尾的行中,
这些行中所有root字符全部替换为aaaaaa后显示出来,g表示global全局修改,若去掉2,5则表示文件内所有行

这个sed命令的各参数意思是:
- '2,5': 从第2行开始,到第5行结束
- s: 表示替换,替换匹配模式为指定字符串
- ^root$: 表示匹配以root开头,以root结尾的行。^和$是正则表达式的定位符,表示行首和行尾 
- aaaaaa: 替换后的字符串
- g: 表示global全局替换,即把前面指定行中所有匹配的字符串都替换,如果要替换第1个就把g改为1,以此类推,第3个就把g改为3.
- ./passwd: 要处理的文件是当前目录下的passwd文件

10. sed '2,5 s/root/aaaaaa/g' ./passwd
不是真操作,将passwd文件中出现的第2-5行中所有root字符替换为aaaaaa

11. sed '2,5 s/root/bbbbbb/' ./passwd
不是真操作,将passwd文件中出现的第2-5行中遇到第1个的root字符替换为bbbbbb

12. sed -i '1 s/root/ccccc/2' ./passwd
真操作,将passwd文件中出现的第1行中遇到的第2个root字符替换为bbbbbb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值