分别用 grep,sed,awk 实现文本筛选过滤功能

分别用 grep,sed,awk 实现文本筛选过滤功能

在这里插入图片描述

筛选ip address show的ipv4

ip address show可简写为ip address可简写为ip a

[z@1235eth5 root]$ ip a | grep 'inet\b'
    inet 127.0.0.1/8 scope host lo
    inet 10.12.35.5/8 brd 10.255.255.255 scope global dynamic noprefixroute enp7s0
[z@1235eth5 root]$ ip a | sed '/inet\b/p' -n
    inet 127.0.0.1/8 scope host lo
    inet 10.12.35.5/8 brd 10.255.255.255 scope global dynamic noprefixroute enp7s0
[z@1235eth5 root]$ ip a | awk '/inet\>/{print}'
    inet 127.0.0.1/8 scope host lo
    inet 10.12.35.5/8 brd 10.255.255.255 scope global dynamic noprefixroute enp7s0
ip a | grep 'inet\b'
ip a | sed '/inet\b/p' -n
ip a | awk '/inet\>/{print}'

也可不写{}, 当没有大括号{}时, 相当于有{print $0}={print}

ip a | awk '/inet\>/{print $0}'
ip a | awk '/inet\>/{print}'
ip a | awk '/inet\>/'

测试时, \b在awk中不起作用, 使用了\>代替

在正则中,

  • \b 表示单词边界
  • \< 表示单词开始边界
  • \> 表示单词结束边界

awk分gawk,mawk等
在Ubuntu2204Desktop版中, awk \b\> 都不起作用, 原因是使用了 mawk . Ubuntu2204Server默认用的是 gawk , 也能用 mawk
Fedora39的awk是gawk




ip a | sed '/inet\b/p' -n

👆也可写成👇

ip a | sed -n '/inet\b/p'

-n 是不输出过滤前的内容, p是输出过滤匹配的行 ;

  • 如果只有-n , 那就什么都看不到
  • 如果只有 p , 会发现所有内容都输出, 且匹配的内容出现两遍
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kfepiza

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

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

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

打赏作者

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

抵扣说明:

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

余额充值