日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则介绍_grep

發(fā)布時間:2023/12/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则介绍_grep 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

10月16日任務(wù)

9.1 正則介紹_grep上

9.2 grep中

9.3 grep下

?

grep基本用法

grep [-cinvABC] 'word' filename

  • centos7.x版本的grep實則為grep --color=auto
  • -c 顯示匹配到的行數(shù)
[root@localhost ~]# cp /etc/passwd /tmp [root@localhost ~]# cd /tmp [root@localhost tmp]# [root@centos7 tmp]# grep -c 'root' passwd 2
  • -i 忽略大小寫
[root@centos7 tmp]# grep -i castiel passwd castiel:x:1000:1000::/home/castiel:/bin/bash Castiel:X:1000:1000::/home/castiel:/bin/bash
  • -n 顯示匹配行的同時顯示行號
[root@centos7 tmp]# grep -n 'root' passwd 1:root:x:0:0:root:/root:/bin/bash 10:operator:x:11:0:operator:/root:/sbin/nologin
  • -v 對匹配信息取反
[root@centos7 tmp]# grep -iv castiel passwd 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin .....
  • -r 遞歸匹配過濾(對目錄進(jìn)行操作)
[root@centos7 tmp]# grep -r 'root' /etc /etc/pki/ca-trust/ca-legacy.conf:# The upstream Mozilla.org project tests all changes to the root CA /etc/pki/ca-trust/ca-legacy.conf:# to temporarily keep certain (legacy) root CA certificates trusted, /etc/pki/ca-trust/ca-legacy.conf:# It may keep root CA certificate as trusted, which the upstream /etc/pki/ca-trust/extracted/README:root CA certificates. /etc/pki/ca-trust/extracted/java/README:root CA certificates. 匹配到二進(jìn)制文件 /etc/pki/ca-trust/extracted/java/cacerts /etc/pki/ca-trust/extracted/openssl/README:root CA certificates. /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Comodo AAA Services root /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Comodo Secure Services root /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Comodo Trusted Services root
  • -An(after) 顯示匹配行及其后n行
[root@centos7 tmp]# grep -A2 'root' passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/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
  • -Bn(before) 顯示匹配行及其前n行
[root@centos7 tmp]# grep -B2 'root' passwd root:x:0:0:root:/root:/bin/bash -- 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
  • -Cn 顯示匹配行及其前后n行
[root@centos7 tmp]# grep -C2 'root' passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin -- 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

正則

# 測試內(nèi)容 [root@localhost ~]# cat test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #abcskhd
  • 數(shù)字?[0-9]
[root@localhost ~]# grep '[0-9]' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 111111111111111111111111111111
  • 字母?[a-zA-Z]
[root@localhost ~]# grep '[a-zA-Z]' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #abcskhd
  • 取反?[^]?(在方括號內(nèi)才表示取反)
[root@localhost ~]# grep '[^a-zA-Z]' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 111111111111111111111111111111 #abcskhd
  • 開頭?^
[root@localhost ~]# grep '^#' test.txt #abcskhd
  • 結(jié)尾?$
[root@localhost ~]# grep 'in$' test.txt 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
  • 匹配任意1個字符?.
[root@localhost ~]# grep 'b.n' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 匹配0或多個之前的一個字符 *
[root@localhost ~]# grep 'a*m' test.txt daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin

擴(kuò)展正則(grep -E 或 egrep)

  • 匹配1或多個之前的一個字符?+
[root@localhost ~]# grep -E 'ro+t' test.txt root:x:0:0:root:/root:/bin/bash
  • 匹配花括號之前那個字符的個數(shù)?{n}?或?{n, m}
[root@localhost ~]# grep -E 'o{2}' test.txt root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[root@localhost ~]# grep -E 'o{1,2}' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 匹配0或1個之前的字符??
# 匹配0或1個字符o [root@localhost ~]# grep -E 'oo?' test.txt 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 匹配其中之一個表達(dá)式:|
[root@localhost ~]# grep -E '111|aaa' test.txt 111111111111111111111111111111 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

實用grep實例

  • 過濾注釋行?grep -v '^#'
  • 過濾空行?grep -v '^$'
  • 過濾手機(jī)號?grep -E '+86-[0-9]{11}'
[root@centos7 tmp]# echo "+86-15301203401" | grep -E '+86-[0-9]{11}' +86-15301203401
  • 過濾郵箱?grep -E '\.\*@\.\*\.\.\*'
[root@centos7 tmp]# echo "12ab3#@123@qq.com" | grep -E '.*@.*\..*' 12ab3#@123@qq.com [root@centos7 tmp]# echo "12323@163.com" | grep -E '.*@.*\..*' 12323@163.com
  • 過濾出/etc目錄下,包含root字符的所有的.conf文件內(nèi)的行!--include
[root@centos7 tmp]# grep -r --include="*.conf" 'root' /etc /etc/pki/ca-trust/ca-legacy.conf:# The upstream Mozilla.org project tests all changes to the root CA /etc/pki/ca-trust/ca-legacy.conf:# to temporarily keep certain (legacy) root CA certificates trusted, /etc/pki/ca-trust/ca-legacy.conf:# It may keep root CA certificate as trusted, which the upstream /etc/yum/pluginconf.d/fastestmirror.conf:# as root). /etc/selinux/semanage.conf:ignoredirs=/root /etc/dbus-1/system.d/teamd.conf: <policy user="root"> /etc/dbus-1/system.d/org.freedesktop.hostname1.conf: <policy user="root"> /etc/dbus-1/system.d/org.freedesktop.import1.conf: <policy user="root"> /etc/dbus-1/system.d/org.freedesktop.locale1.conf: <policy user="root"> ......
  • 擴(kuò)展正則?( )?的應(yīng)用
[root@localhost ~]# grep -E 'a(e|d)m' test.txt daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin

轉(zhuǎn)載于:https://my.oschina.net/u/3964535/blog/2246817

總結(jié)

以上是生活随笔為你收集整理的正则介绍_grep的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。