linux--sed工具的使用

sed工具

一丶sed工具–Stream EDitor 流式编辑器

1.特点:

非交互式,基于模式匹配过滤及修改文本
逐行处理 ,输出结果
可以实现对文本的增删改查等操作

我们的脚本有时候是自动化的 如果有时候需要修改配置文件 用vim必须要有人操作,实行不了自动化运维,这时候就可以用sed工具实现.

2.格式

格式1: 前置命令 | sed [选项] ‘编辑指令’
格式2: sed [选项] ‘编辑指令’ 文件…
编辑指令是可以输入定址符,确定在那一行处理

3.常见的选项:

-n 屏蔽默认输出 //因为sed修改之后会有默认输出,在输出就会显示两遍
-i 直接修改文件内容 //如果不加-i 会显示修改后的文件内容,但不会直接修改
-r 可以使用扩展正则表达式 //sed默认不支持扩展正则

4.常见的指令:

p 输出
d 删除
s 字符串的替换

二丶实例—注意这里的一切修改都需要加-i 否侧没有真正的修改

1.输出文本

= 显示行号 $最后 ^开头
1输出所有行,相当于cat

sed  -n 'p' a.txt

2输出指定行

sed -n '4p' a.txt       //输出第四行
sed -n '1p;3p' a.txt   //输出第一第三行
sed -n '2,5p' a.txt    //输出2-5行 包括第二行第五行
sed -n '4,+10p' a.txt    //输出第四行以及后面的十行

3输出一特定字符开头的行

 sed -n '/^bin/p' a.txt   //输出以bin开头的行

4输出文件的行数

sed -n '$=' a.txt

5显示奇数行

sed -n '1~2p' a.txt

6输出偶数行

 sed -n '2~2p' a.txt 
2.删除文本

! 代表取反
1删除指定行

sed '3,5d' a.txt   //删除3-5行

2删除带指定字符的行

sed '/xml/d' a.txt  //删除所有带xml的行

3删除不包含指定字符的行

sed '/xml/!d' a.txt    // ! 表示取反

4删除以指定字符开头的行

sed -n '/^bin/d' a.txt 

5删除所有空行

sed '/^$/d' a.txt

6删除文件最后一行

sed '$d' a.txt
3.文本替换

格式 s/// 最后+g 代表文中所有 s/// 的替换符可以换成s### s!!!
1将每行第一个xml替换为XML

sed 's/xml/XML/'  a.txt

2将每行中的第三个xml替换为XML

sed 's/xml/XML/3'  a.txt

3将所有xml替换为XML

sed 's/xml/XML/g'  a.txt

4删除所有xml(将xml替换为空)

sed 's/xml//g'  a.txt 

5将4-7行注释掉

sed '4,7s/^/#/' a.txt

6把以#an开头的行的注释去掉

sed 's/#an/an/' a.txt

三丶文本快的应用

在文本内插入新行 如何插入多行文本 如何替换指定的文本

1.操作符

i 行前插入文本
a 行后插入文本
c 替换当前行

2.处理单行文本
sed '2ixx' a.txt  //在第二行之前添加xx
sed '2axx' a.txt  //在第二行之后添加xx
 sed '2cxx' a.txt  //把第二行替换为xx
3.处理多行文本

\n 换行符 \强制换行

 sed -n '2cxx\nyy'  a.txt
[root@desktop0 opt]# sed -n '2cxx\
> yy' a.txt
xx
yy
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值