正規表示式,又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(英語:regular expression,在**中常簡寫為 regex、regexp 或 re),電腦科學的乙個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字
+表示前面的字元必須出現至少一次(1次或多次),例如,"goo+gle",可以匹配"gooogle","goooogle"等;
?表示前面的字元最多出現一次(0次或1次),例如,"colou?r",可以匹配"color"或者"colour";
*星號代表前面的字元可以不出現,也可以出現一次或者多次(0次、或1次、或多次),例如,「0*42」可以匹配42、042、0042、00042等。
\將下乙個字元標記為乙個特殊字元或乙個轉義字元
^匹配輸入字串的開始位置
$匹配輸入字串的結束位置
n是乙個非負整數,匹配卻的n次
至少匹配n次
n<=m最少匹配n次最多匹配m次
*匹配前面的子表示式零次或多次
+匹配前面的子表示式一次或多次
?匹配前面的子表示式零次或一次
.匹配出"\n"之外的任何單個字元,要匹配\n可以這樣寫".|\n"
(pattern)匹配pattern並獲取這一匹配的子字串
x|y匹配x或y
[xyz]匹配所包含的任意乙個字元
[^xyz]匹配未列出的任意字元
[a-z]匹配指定範圍內的任意字元
grep -e擴充套件正規表示式
grep -g基本正規表示式
grep -p正規表示式
grep -b將二進位制檔案作為文本來進行匹配
grep -c統計一模式匹配的數目
grep -i忽略大小寫
grep -n顯示匹配文字所在行的行號
grep -v反選輸出不匹配的行的內容
grep -r遞迴匹配查詢
grep -a n處理列出匹配行之外,還列出後面的n行
grep -b n還列出前面的n行
grep 'shiyanlou' /etc/group
echo 'zero\nzo\nzoo' |grep 'z..*o'將匹配z開頭o結尾的所有字串
echo 'zero\nzo\nzoo' |grep 'z.o'將匹配中間包含乙個任意字元的字串
[:alnum:] 代表英文大小寫位元組及數字,亦即 0-9, a-z, a-z
[:alpha:] 代表任何英文大小寫位元組,亦即 a-z, a-z
[:blank:] 代表空白鍵與 [tab] 按鍵兩者
[:cntrl:] 代表鍵盤上面的控制按鍵,亦即包括 cr, lf, tab, del.. 等等
[:digit:] 代表數字而已,亦即 0-9
[:graph:] 除了空白位元組 (空白鍵與 [tab] 按鍵) 外的其他所有按鍵
[:lower:] 代表小寫位元組,亦即 a-z
[:print:] 代表任何可以被列印出來的位元組
[:punct:] 代表標點符號 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 代表大寫位元組,亦即 a-z
[:space:] 任何會產生空白的位元組,包括空白鍵, [tab], cr 等等
[:xdigit:] 代表 16 進製的數字型別,因此包括: 0-9, a-f, a-f 的數字與位元組
echo 'zero\nzo\nzoo' |grep -e 'zo'只匹配zo
echo 'zero\nzo\nzoo' |grep -e 'zo'匹配zo開頭的所有單詞
sed -n安靜模式,只列印受影響的行,預設列印輸入資料的全部內容
sed -e用於在指令碼中新增多個執行命令一次執行
sed -f filename指定執行filename檔案中的命令
sed -r使用擴充套件正規表示式
sed -i將直接修改輸入檔案內容
s行內替換c整行替換a插入到指定行的後面i插入到指定行的前面p列印制定行d刪除指定行
nl passwd |sed -n '2,5p'列印2到5行
awk是一種優良的文字處理工具,它允許您建立簡短的程式,這些程式讀取輸入檔案、為資料排序、處理資料、對輸入執行計算以及生成報表,還有無數其他的功能
用vim建立乙個檔案test然後輸入以下命令
awk '' test
需要注意nr ofs這兩個是awk內建的變數,nr表示當前讀入的記錄數,你可以簡單的理解為當前處理的行數,ofs表示輸出時的字段分隔符,預設為" "空格
filename當前輸入檔名,若有多個檔案,則只表示第乙個。如果輸入是來自標準輸入,則為空字串
$0當前記錄的內容
$nn表示欄位號,最大值為nf變數的值
fs欄位分隔符,由正規表示式表示,預設為" "空格
rs輸入記錄分隔符,預設為"\n",即一行為乙個記錄
nf當前記錄字段數
nr已經讀入的記錄數
fnr當前輸入檔案的記錄數,請注意它與nr的區別
ofs輸出字段分隔符,預設為" "空格
ors輸出記錄分隔符,預設為"\n"
Linux之正規表示式
正規表示式用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk,sed等命令可以運動正規表示式。正規表示式匹配得到的結果是行 萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配。ls.find.cp這些命令不支援正規表示式,所以只能用shell自己的萬用字元來進行匹配了。例 grep a...
Linux之正規表示式
字元含義 字串開始 配字串結尾 匹配0個或多個的前乙個字元。注意shell中的 是萬用字元,可以匹配任意字元。與正規表示式中的有差異。匹配任意單字元 示例1 句點匹配 句點匹配單個字元 匹配許可權 x.x.x 前4個字元之後為xc xc.示例2 行首匹配 匹配目錄 d匹配行首為001的 001 每行...
linux之正規表示式
1 定義 正規表示式是使用一種模式去匹配一類字串的公式 2 元字元 rot 123 ratgood godgooood gdgood 1djsdh test1212 020 7266452 010 6765276 0987 8726531 13687652890 78731 dhsdsjhd hel...