学习linux第二十七天

正则

grep  过滤

[root@hanlin grep]# grep -n 'x' passwd (过滤出passwd里面含有x的行,并且标出行号,-n --line-number

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


42:xy:x:1002:1002::/home/xy:/bin/bash

[root@hanlin grep]# grep -c 'x' passwd (过滤出passwd文件里含有x的行,计算出行数 ,-c--count)
42

 

[root@hanlin grep]# grep -i 'x' passwd   (过滤出passwd文件里含有x的行,不区分大小写,-i--ignore-case)

root:X:0:0:root:/root:/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

 

[root@hanlin grep]# grep -v 'nologin' passwd (过滤出passwd文件里含有nologin的行,并且取反,取不包含nologin的行 -v--invert-match)
root:X:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
xuyao:x:1000:1000:xuyao:/home/xuyao:/bin/bash
xy:x:1002:1002::/home/xy:/bin/bash

 

[root@hanlin grep]# grep -r 'root' /etc/  (过滤出etc目录下含有root的行,如果不加-r只能过滤文件 -r遍历所有子目录 -r--recursive递归的读每个目录下面的所有文件)

/etc/grub.d/00_header:datarootdir="/usr/share"
/etc/grub.d/00_header:export TEXTDOMAINDIR="${datarootdir}/locale"
/etc/grub.d/00_header:if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT}"` ; then
/etc/grub.d/00_header: font="`make_system_path_relative_to_its_root "${font_path}"`"
/etc/grub.d/00_header:loadfont (\$root)`make_system_path_relative_to_its_root $x`
/etc/grub.d/00_header:set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME`
/etc/grub.d/00_header:background_image -m stretch `make_system_path_relative_to_its_root "$GRUB_BACKGROUND"`

 

 

[root@hanlin grep]# grep -A3 'root' passwd (过滤出passwd文件包含root的行,并且把它下面3行也列出来)
root:X:0:0:root:/root:/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
--
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

 

[root@hanlin grep]# grep -nB3 'root' passwd  (过滤出passwd文件中包含root的行,并且把它上面三行也列出来,全部加上行号)
1:root:X:0:0:root:/root:/bin/bash (上面到顶了,没得列了)0

--
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

 

 

[root@hanlin grep]# grep -nC3 'root' passwd  (过滤出passwd文件中包含root的行,并且把它上下各三行也列出来,全部加上行号)
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

--
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

 

[root@hanlin ~]# grep '[0-9]' /etc/inittab  (过滤出inittab文件中含有0-9任意一个数字的行)
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5

 

[root@hanlin ~]# grep -v '[0-9]' /etc/inittab (过滤出inittab文件中不含0-9任意一个数字的行)
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

 

[root@hanlin ~]# grep -v '^#' /etc/sos.conf (过滤出sos.conf文件中不以#开头的行)
[plugins]


[tunables]


 

[root@hanlin ~]# grep -n '^[^a-z]' /etc/inittab.bak  (过滤出inittab文件中以非a-z开头的行)
1:# inittab is no longer used when using systemd.
2:#
3:# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
4:#
5:# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
6:#
7:# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
8:#
9:# multi-user.target: analogous to runlevel 3
10:# graphical.target: analogous to runlevel 5
11:#
12:# To view current default target, run:
13:# systemctl get-default
14:#
15:# To set a default target, run:
16:# systemctl set-default TARGET.target
17:#

19:233aaaa234
 

[root@hanlin ~]# grep -n 'r.o' /etc/passwd.bak  (过滤passwd.bak中包含r.o的行人,.表示任意字符数字特殊符号)
1:root:x:0:0:root:/root:/bin/bash
2:r.o
3:r1o
4:rao
5:r>o
6:rro
15:operator:x:11:0:operator:/root:/sbin/nologin

 

[root@hanlin ~]# grep -n 'o*o' /etc/passwd.bak (过滤passwd.bak文件中*左边是任意个o,*右边是一个o的行,换句话说,只要有后面的一个o就要被过滤出来)
1:root:x:0:0:root:/root:/bin/bash
2:r.o
3:r1o
4:rao
5:r>o
6:rro
7:ooo
8:o
9:mo
10:o,o
11:olo

 

[root@hanlin ~]# grep -n '.*' /etc/passwd.bak  (过滤passwd.bak文件中任意一个任意字符的行)
1:root:x:0:0:root:/root:/bin/bash
2:r.o
3:r1o
4:rao
5:r>o
6:rro
7:ooo
8:o
9:mo
10:o,o
11:olo
12:bin:x:1:1:bin:/bin:/sbin/nologin
13:daemon:x:2:2:daemon:/sbin:/sbin/nologin
14:adm:x:3:4:adm:/var/adm:/sbin/nologin
15:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
16:sync:x:5:0:sync:/sbin:/bin/sync

 

[root@hanlin ~]# grep -n 'xy.*bash' /etc/passwd.bak  (过滤passwd.bak文件中前面是xy中间任意,后面是bash的行)
52:xy:x:1002:1002::/home/xy:/bin/bash

 

[root@hanlin ~]# grep 'o\{2\}' /etc/passwd.bak ({}里面的表示一个范围,过滤出passwd.bak里面含有两个o的行,要用脱义符号\不然不能识别,或者用egrep会自动识别,再或者后面跟-E跟egrep是一个意思)
root:x:0:0:root:/root:/bin/bash
ooo
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@hanlin ~]# grep -E 'o{2}' /etc/passwd.bak
root:x:0:0:root:/root:/bin/bash
ooo
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@hanlin ~]# egrep 'o{2}' /etc/passwd.bak
root:x:0:0:root:/root:/bin/bash
ooo
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

 

[root@hanlin ~]# grep 'o\+o' /etc/passwd.bak  (过滤出passwd.bak文件中+前面是一次或者多次o,后面是0的文件

root:x:0:0:root:/root:/bin/bash
ooo
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@hanlin ~]# grep -E 'o+o' /etc/passwd.bak 
root:x:0:0:root:/root:/bin/bash
ooo
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

 

[root@hanlin ~]# grep -E 'o?t' /etc/passwd.bak  (过滤passwd.bak文件中前面是0次或者一次o后面是t的行

root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

 

[root@hanlin ~]# grep -E 'root|19' /etc/passwd.bak  (过滤passwd.bak文件中含有root或者额9的行,可以写多个|)
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

 

[root@hanlin ~]# grep -E '(oo){2}' /etc/passwd.bak  (过滤passwd.bak文件中含有两组oo的行)
roooooooot
roooot

 

转载于:https://my.oschina.net/u/3867255/blog/1839611

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值