linux(sed的使用)

本文介绍了如何在Linux环境中使用sed命令进行文本处理,包括取消默认输出、修改文件内容、过滤和删除特定行。同时展示了awk的用法,以及正则表达式在提取IP地址等信息时的作用。示例中详细演示了各种命令的参数和使用场景。
摘要由CSDN通过智能技术生成

正则表达式规则:

        请看上一章:linux-正则表达式规则_梦有一把琐

awk的使用:

        请看下一章:

grep的使用:

        请看下一章:

 sed:

  • -n:取消默认输出
  • -i:修改文件内容
  • -e:允许多次编译
  • -r:支持扩展正则
  • a:文本追加
  • d:匹配行的文本
  • i:插入,指定行前插入文本
  • p:打印
  • =:显示匹配的行号
  • s///:替换

输出2-3行内容:

[root@test_7 ~]# ip a | sed -n '2,3p'
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo

过滤含有inet字符的行:

[root@test_7 ~]# ip a | sed -n '/inet /p'
    inet 127.0.0.1/8 scope host lo
    inet 192.168.200.150/24 brd 192.168.200.255 scope global eth0

删除含有inet字符的行:

[root@test_7 ~]# ip a | sed -n '/inet /d'

指定删除第3行或4-6行:

[root@test_7 ~]# ip a | sed  '3d'

[root@test_7 ~]# ip a | sed  '4,6d'

打印空行、显示行号、不打印空行:

[root@test_7 ~]#  sed  -n '/^$/p' test 


[root@test_7 ~]#  sed  -n '/^$/=' test 
2
4
[root@test_7 ~]#  sed  -n '/^$/!p' test 
111
222
333
444

将111替换成000:

[root@test_7 ~]# sed 's/111/000/g' test 
000

222

333
444

在第二行追加文本aaa:

[root@test_7 ~]# sed '2a aaa' test 
111

aaa
222

333
444

取ip的几种方法:

[root@test_7 ~]# ip a | sed -n '/inet /p' | sed -n '2p' | awk '{print $2}'
192.168.200.150/24

[root@test_7 ~]# ip a | awk 'NR==9{print $2}'
192.168.200.150/24

[root@test_7 ~]# ip a |sed -n '9p' |  sed 's/^.*inet //g' | sed 's/brd.*$//g'
192.168.200.150/24

使用扩展正则:

[root@test_7 ~]# ip a | sed -rn 's/^.*inet (.*) brd.*$/\1/gp'
192.168.200.150/24

[root@test_7 ~]# ifconfig | sed -rn 's/^.*inet (.*) net.*$/\1/gp' | sed '2d'
192.168.200.150

取hosts文件的权限:

[root@test_7 ~]# stat /etc/hosts | sed -rn 's/^Acc.* \(0(.*)\/-.*$/\1/gp'
644

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦有一把琐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值