正则表达式应用练习

本文提供了一系列的正则表达式使用练习,涵盖基础及扩展正则表达式,包括匹配/proc/meminfo中特定行、查找/etc/passwd中特定模式的行、统计root登录的IP地址等,旨在提升正则表达式技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式使用练习
1、显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)
[10:41:55 root@CentOS8 ~]#grep '^s\|^S' /proc/meminfo          #方法一
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              9388 kB
Slab:             131840 kB
SReclaimable:      54500 kB
SUnreclaim:        77340 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
[11:26:43 root@CentOS8 ~]#grep '^s' /proc/meminfo              #该文件内不存在以小s开头的行
[11:27:00 root@CentOS8 ~]#grep '^\(s\|S\)' /proc/meminfo       #方法二
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              9388 kB
Slab:             131840 kB
SReclaimable:      54500 kB
SUnreclaim:        77340 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
2、显示/etc/passwd文件中不以/bin/bash结尾的行
[14:49:42 root@CentOS8 ~]#cat /etc/passwd |wc -l              #passwd文件一共有51行
51
[14:49:49 root@CentOS8 ~]#grep '/bin/bash$' /etc/passwd       #以/bin/bash结尾的行有以下行
root:x:0:0:root:/root:/bin/bash
bo:x:1000:1000:bo:/home/bo:/bin/bash
nginx:x:1100:1100:nginx:/home/nginx:/bin/bash
varnish:x:1101:1101::/home/varnish:/bin/bash
webs:x:1103:1002::/home/webs:/bin/bash
[14:49:52 root@CentOS8 ~]#grep '/bin/bash$' /etc/passwd |wc -l   #可以看出有5行
5
[14:49:59 root@CentOS8 ~]#grep -v '/bin/bash$' /etc/passwd |wc -l  #不以/bin/bash结尾有46行
46
[14:50:14 root@CentOS8 ~]#grep -v '/bin/bash$' /etc/passwd         #不以/bin/bash结尾的行
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:996:991:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
gluster:x:995:990:GlusterFS daemons:/run/gluster:/sbin/nologin
chrony:x:994:989::/var/lib/chrony:/sbin/nologin
libstoragemgmt:x:993:987:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
saslauth:x:992:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dnsmasq:x:986:986:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
clevis:x:985:984:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:984:982:User for cockpit-ws:/:/sbin/nologin
colord:x:983:981:User for colord:/var/lib/colord:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
sssd:x:982:980:User for sssd:/:/sbin/nologin
setroubleshoot:x:981:979::/var/lib/setroubleshoot:/sbin/nologin
pipewire:x:980:978:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:979:977::/run/gnome-initial-setup/:/sbin/nologin
insights:x:978:976:Red Hat Insights:/var/lib/insights:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
gentoo:x:1001:1001:Gentoo Distribution:/home/gentoo:/usr/bin/csh
mysql:x:1102:1102:mysql:/home/mysql:/usr/sbin/nologin
3、显示用户rpc默认的shell程序
[17:06:01 root@CentOS8 ~]#grep '^rpc\>' /etc/passwd 
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
[17:06:25 root@CentOS8 ~]#grep '^rpc\>' /etc/passwd |cut -d: -f7
/sbin/nologin
[17:06:29 root@CentOS8 ~]#
4、找出/etc/passwd中的两位或三位数
[17:02:39 root@CentOS8 ~]#grep -o '\<[0-9]\{2,3\}\>' /etc/passwd | paste -s
12	11	12	100	14	50	81	81	999	997	193	193	59	59	998	996	997	995	172	172	171	171	107	107	113	113	996	991	32	32	995	990	994	989	993	987	992	76	986	986	75	75	985	984	984	982	983	981	29	29	982	980	981	979	980	978	42	42	979	977	978	976	74	74	70	70	72	72	89	89
[17:04:02 root@CentOS8 ~]#
5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行
[15:23:38root@CentOS7~]#grep '^[[:blank:]].*[[:graph:]]' /etc/grub2.cfg #方法一
  load_env
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
   set default="${saved_entry}"
  menuentry_id_option="--id"
  menuentry_id_option=""
  set saved_entry
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值