Linux三剑客之sed

三剑客简介

  • grep : 过滤文本

  • sed : 修改文本

  • awk : 处理文本

linux三剑客之sed

  • sed是Linux中的流媒体编辑器

1. sed 格式

​ sed [参数] ‘处理规则’ [操作对象]

参数用途用法
-e允许多项编辑sed -e ‘3d’ -e ‘4d’ 1.txt
-n取消默认输出sed -n 1.txt
-i就地编辑(将展示内容写入文件)sed -i ‘3d’ 1.txt
-r支持拓展正在则(正则表达式放在/ 中间/ (# # ,$ $也可))sed -r ‘/123/d’ 1.txt
-f指定sed匹配规则脚本文件(通过文件内容修改文件)sed -f r.txt 1.txt

2.sed模式

参数意义用法
d删除sed ‘3d’ 1.txt
p打印sed -n ‘3p’ 1.txt
a在当前行后添加一行或多行sed ‘saxxx’ 1.txt
c用新的文本修改(替换)当前行sed ‘2cxxx’ 1.txt
i在当前行之前插入文本(单独使用)sed ‘2ixxx’ 1.txt
r在文件中读内容,写到新文件中sed ‘2r r.txt ‘ 1.txt
w将指定行写入新文件文件sed ‘2w w.txt’ 1.txt
y将字符装换成另一个字符sed ‘2y/fa/FA/’ 2.txt
s将字符串转换成另一个字符串(每一行只替换一处)sed ‘s/11/22/g’ 1.txt
g全部执行sed ‘s/11/22/g’ 1.txt
i忽略大小写(跟 s 模式一起使用)sed ‘s/F/abc/gi’ 1.txt

3. 定位

  1. 数字定位法

    ​ 指定行号:

    ​ sed ‘3d’ 1.txt : 删除第三行

    ​ sed ‘2,3d’ 1.txt : 删除第2到第3行

  2. 正则定位法

    ​ sed ‘/g/d’ 1.txt : 删除含g的行

  3. 数字和正则定位法

    ​ sed ‘3,/^g/d’ 1.txt : 删除 从第3行开始到以g开头的行

  4. 正则正则定位法

    sed  '/^g/,/^j/d' 1.txt :  删除从以g开头到以j开头的所有行
    

4. 案例

1. 将nginx.conf 中的注释行全部去掉
	sed '/^ *#/d' /etc/nginx/nginx.conf
	
2. 将nginx.conf中每一行之前增加注释
	sed 's/.*/# &/g' /etc/nginx/nginx.conf
	注 : & 符号代表之前内容

3. 要求一键修改本机的ip
	sed -i 's/\.100/\.101/g'  /etc/sysconfig/network-scripts/ifcfg-eth[01]
	
4、将/etc/passwd中的root修改成ROOT
	sed -i 's/root/ROOT/g'  /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go&Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值