28、shell编程—sed之pattern详解

1.常用的pattern格式

匹配模式含义
10command匹配到第10行不常用
10,20command匹配从第10行开始,到20行结束不常用
10,+5command匹配从第10行开始,到16行结束不常用
/pattern1/command匹配到pattern1行常用
/pattern1/,/pattern2/command匹配从pattern1开始到pattern2结束常用
10,/pattern1/command匹配从第10行开始,到匹配到pattern1行结束不常用
/pattern1/,10command匹配从pattern1开始,到第10行结束不常用
s/pattern1/patter2/g使用patter2代替patter1常用

2.实战

第一步:先看下我们/etc/passwd 的内容

     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
    11	games:x:12:100:games:/usr/games:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13	nobody:x:99:99:Nobody:/:/sbin/nologin
    14	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15	dbus:x:81:81:System message bus:/:/sbin/nologin
    16	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17	rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    18	rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    19	nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    20	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    21	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    22	chrony:x:998:995::/var/lib/chrony:/sbin/nologin
    23	centos:x:1000:1000:Cloud User:/home/centos:/bin/bash
    24	jiangliuwei:x:1001:1001::/home/jiangliuwei:/bin/bash

第二步:实战演示

sed -n '10p' /etc/passwd
# 结果:operator:x:11:0:operator:/root:/sbin/nologin

sed -n '10,15p' /etc/passwd
# 结果:打印从第10行到第15行
# operator:x:11:0:operator:/root:/sbin/nologin
# games:x:12:100:games:/usr/games:/sbin/nologin
# ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
# nobody:x:99:99:Nobody:/:/sbin/nologin
# systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
# dbus:x:81:81:System message bus:/:/sbin/nologin

#============================如下常用========================
sed -n '/dbus/p' /etc/passwd
# 结果: dbus:x:81:81:System message bus:/:/sbin/nologin
sed -n '/^dbus/p' /etc/passwd # 已dbus开头的进行匹配
# 结果: dbus:x:81:81:System message bus:/:/sbin/nologin
sed -n '/^bin/,/^adm/p' /etc/passwd
# 结果:
# bin:x:1:1:bin:/bin:/sbin/nologin
# daemon:x:2:2:daemon:/sbin:/sbin/nologin
# adm:x:3:4:adm:/var/adm:/sbin/nologin
# =================================================================

sed -n '23,/^root/p' /etc/passwd 
# 我们从第23行开始匹配,匹配root开头,直接匹配到最后
# 结果:
# centos:x:1000:1000:Cloud User:/home/centos:/bin/bash
# jiangliuwei:x:1001:1001::/home/jiangliuwei:/bin/bash
sed -n '10,/^ftp/p' /etc/passwd
# 从第10行开始匹配到,ftp开头的结果
# 结果:
# operator:x:11:0:operator:/root:/sbin/nologin
# games:x:12:100:games:/usr/games:/sbin/nologin
# ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

sed -n '/^jiangliuwei/,10p' /etc/passwd
# 匹配到jiangliuwei 开头,到第十行结束
# 结果:
# jiangliuwei:x:1001:1001::/home/jiangliuwei:/bin/bash
sed -n '/^halt/,10p' /etc/passwd
# 匹配到halt 开头,到第十行结束
# 结果:
# halt:x:7:0:halt:/sbin:/sbin/halt
# mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
# operator:x:11:0:operator:/root:/sbin/nologin
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值