2018-03-12阿銘Linux學習
阿新 • • 發佈:2018-03-12
Linux學習9.1 正則介紹 grep (上)
什麽是正則 正則就是一串有規律的字符串 掌握好正則對於編寫shell腳本有很大幫助 各種編程語言中都有正則,原理是一樣的 本章主要學習 grep/egrep、sed、awk 掌握規律 grep grep [-cinvABC] ‘work‘ filename -c 行數 -i 不區分大小寫 -n 顯示行號 -v 取反 -r 遍及所有子目錄 -A 後面跟數字,過濾出符合要求的行以及下面n行 -B 後面跟數字,過濾出符合要求的行以及上面n行 -C 後面跟數字,同時過濾出符合要求的行以及上下各n行 [root@aming-01 grep]# grep -c ‘nologin‘ passwd 16 [root@aming-01 grep]# grep -n ‘nologin‘ passwd [root@aming-01 grep]# grep -i -c ‘nologin‘ passwd 16 [root@aming-01 grep]# grep -v -c ‘nologin‘ passwd 4 [root@aming-01 grep]# grep -vc ‘nologin‘ passwd 4 [root@aming-01 grep]# grep -v ‘nologin‘ passwd 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 [root@aming-01 grep]# grep -A2 ‘root‘ passwd
9.2 grep (中)
grep/egrep 示例 grep -n ‘root‘ /etc/passwd grep -nv ‘nologin‘ /etc/passwd grep ‘[0-9]‘ /etc/ininttab grep -v ‘[0-9]‘ /etc/inittab grep -v ‘^#‘ inittab grep -v ‘^#‘ inittab|grep -v ‘^$‘ grep ‘^[^a-zA-Z]‘ test.txt grep ‘r.o‘ test.txt grep ‘oo‘ test.txt grep ‘.*‘ test.txt grep ‘o\{2\}‘ /etc/passwd egrep ‘o{2}‘ /etc/passwd egrep ‘o+‘ /etc/passwd egrep ‘oo?‘ /etc/passwd egrep ‘root|nologin‘ /etc/passwd egrep ‘(oo){2}‘ /etc/passwd [root@aming-01 grep]# grep -n ‘^#‘ inittab 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: 16:# systemctl get-default 17:# 18:# To set a default target, run: 19:# systemctl set-default TARGET.target 20:# [root@aming-01 grep]# grep -nv ‘^#‘ inittab 13:adfafsafd 14:ssss 15:66666 [root@aming-01 grep]# grep -n ‘[^0-9]‘ inittab 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 maintargets: 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:adfafsafd 14:ssss 16:# systemctl get-default 17:# 18:# To set a default target, run: 19:# systemctl set-default TARGET.target 20:# [root@aming-01 grep]# grep -n ‘^[^0-9]‘ inittab 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:adfafsafd 14:ssss 16:# systemctl get-default 17:# 18:# To set a default target, run: 19:# systemctl set-default TARGET.target 20:# [root@aming-01 grep]# grep -nv ‘^[^0-9]‘ inittab 15:66666
9.3 grep (下)
. 匹配.兩邊的字符中任意一個 * 重復*左邊的字符0或無數個 + 重復+左邊的字符1到無數個 ? 重復?前面字符的0或1次 | 或者 () 找出群組字串 ()+ 多個重復群組字串的判別 [root@aming-01 grep]# grep ‘r.o‘ passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@aming-01 grep]# grep ‘{2}‘ passwd [root@aming-01 grep]# grep ‘o{2}‘ passwd [root@aming-01 grep]# grep ‘o\{2\}‘ passwd root:x:0:0:root:/root:/bin/bash 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 postfix:x:89:89::/var/spool/postfix:/sbin/nologin bacula:x:133:133:Bacula Backup System:/var/spool/bacula:/sbin/nologin grep -E ‘o{2}‘ passwd === egrep ‘o{2}‘ passwd [root@aming-01 grep]# egrep ‘o+o‘ passwd [root@aming-01 grep]# grep -E ‘root|nologin‘ passwd [root@aming-01 data]# grep -r --include="*.php" ‘eval‘ /tmp/data /tmp/data/ext.php:eval
2018-03-12阿銘Linux學習