您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux如何使用正則表達式,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我們可以使用 grep 命令來測試我們的正則表達式,grep命令使用正則表達式去嘗試匹配指定文件的每一行,并將至少有一處匹配表達式的所有行顯示出來。
grep 命令說明:
常用的選項OPTION:
-c 顯示匹配到的行數之和 -o 僅顯示匹配本身 -v 顯示非匹配,取反 -i 不區分大小寫 -E 支持擴展表達式 -q 靜默模式 -n 顯示匹配到的行的行號 -A 2 顯示匹配到的行的后2行 -B 2 顯示匹配到的行的前2行 -C 2 顯示匹配到的行的前后2行 -V 顯示版本信息
grep “[匹配字符]匹配出現次數” /PATH/TO/SOMEFILE
字符匹配:
. 任意單個字符 [] 指定范圍內的單個字符 [^] 指定范圍外的的單個字符,取反 .* 任意長度的任意字符 [:alnum:] 所有的字母和數字 [:alpha:] 所有的字母 [:blank:] 所有呈水平排列的空白字符 [:cntrl:] 所有的控制字符 [:digit:] 所有的數字 [:graph:] 所有的可打印字符,不包括空格 [:lower:] 所有的小寫字母 [:print:] 所有的可打印字符,包括空格 [:punct:] 所有的標點字符 [:space:] 所有呈水平或垂直排列的空白字符 [:upper:] 所有的大寫字母 [:xdigit:] 所有的十六進制數 [=字符=] 所有和指定字符相等的字符
匹配次數 :
* 其前面的字符出現任意次,0次或1次,或者多次 \? 其前面的字符出現0次或1次 \+ 其前面的字符出現1次或多次,至少出現1次 \{m\} 指定字符出現次數 \{m,n\} 至少出現m次,至多出現n次,范圍取次 \{0,n\} 出現最多n次 \{m,\} 出現最少m次
位置錨定:
^ 行首錨定,用于模式的最左側 $ 行尾錨定,用于模式的最右側 ^……$ 整行, ^$ 空白行,^[[:space:]]*$ 空行或者有空白字符的行 \ 或 \b 詞尾錨定 \ 精確錨定單詞
分組及引用:
\{xy\}*ab 表示多個字符出現0,1或多次。 \ 在這里作為轉義符使用 \(abcd\){1,3} 表示包含abcd字符串最少出現1次,最多出現3次 \(1..2\).* \1 \1 是指引用從左側起第一個()之間的字符 \(1..2\).* \(3..4\)\2 \2 是指引用從左側起第二個()之間的字符 \(1..2\).* \(3..4\).*\(5..6\)\3 \3 是指引用從左側起第三個()之間的字符
使用實例:
查看顯示 /etc/fstab 文件以 # 注釋開頭的行:
這里也可以不加【】:
-v 取反,即顯示不以#注釋的行,-o 選項為只顯示匹配到的字符串:
顯示 /etc/fstab 文件非注釋的行,錨定行首為 # 注釋的行,取反:
顯示 /etc/fstab 文件以#號開頭,后面跟一個空格,后面為任意長度任意字符的行, -c 選項可以統計匹配到的行數:
在 /tmp/fstab 文件中加入多個空白行,以#號開頭,后面僅跟一個空格,且不以空白符結尾的行:
顯示 /tmp/sshd_config 文件中不以#注釋、空白行以及有空白字符的行:
顯示 /etc/passwd 文件中用戶名和用戶SHELL為一樣的行:
顯示 /tmp 目錄下,以非字母開頭,后面跟一個字母,后面為任意長度任意字符的文件或者目錄:
顯示 /tmp 目錄下以非字母開頭,后面僅跟一個字母,然后以非字母結尾的文件和目錄:
顯示 /etc 目錄下以p開頭不以數字結尾的所有文件和目錄:
顯示 ip a 或者 ifconfig 命令中的IP地址,-E 選項為支持擴展正則表達式:
-l 選項可以列出包含字符串的文件列表:
-w 精確錨定字符串,相當于 :
egrep 的使用方法跟 grep 基本一致,不需要轉義符 \ 看起來更簡潔:
關于“Linux如何使用正則表達式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。