字元
代表意義
[: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:]
標點符號,即」 「 ? ! ; : # $
[upper:]
大寫字元,即a-z
[:space:]
任何會產生空白的字元,包括空格鍵[tab] cr等
[:xdigit:]
十六進製制的數字型別,因此包括0-9,a-f,a-f的數字與字元
^word
意義:待查詢的字串(word)在行首。
例子:查詢行首為#開始的那一行,並列出行號:grep –n 『^#』 file.txt
word$
意義:待查詢的字串(word)在行尾。
例子:將行尾為!的那一行列印出來,並列出行號:grep –n 『!$』 file.txt .
意義:代表一定有乙個任意字元的字元。
例子:查詢的字串可以是(eve) (eae) (eee) (ee),但不能僅有(ee),即e與e中間一定僅有乙個字元,而空格符也是字元:grep –n 『e.e』 file.txt \
意義:轉義字元,將特殊符號的特殊意義去除。
例子:查詢含有單引號』的那一行:grep –n \』 file.txt *
意義:重複零個到無窮多個的前乙個字元。
例子:找出(es) (ess) (esss)等的字串,注意,因為*可以是0個,所以es也是符合待查詢字串。另外,因為*為重複「前乙個字元re」的符號,因此,在*之前必須要緊接著乙個re字元:grep –n 『ess*』 file.txt
[list]
意義:從字元集合的re字元裡面找出想要選取的字元。
例子:查詢含有(gl)或(gd)的那一行需要特別留意的是,在當中代表乙個待查詢的字元,a[afl]y代表查詢的字串可以是aay,afy,aly即[afl]代表a或f或l的意思:
grep –n 『g[ld]』 file.txt
[n1-n2]
意義:從字元集合的re字元裡面查詢出想要選取的字元範圍。
例子:查詢含有任意數字的那一行,grep –n 『[0-9]』 file.txt
[^list]
意義:從字元集合的re字元裡面找出不要的字串或範圍。
例子:查詢的字串可以是(oog) (ood)但不能使(oot),grep –n 『oo[^t] file.txt \
意義:連續n到m個的前乙個re字元,若為\則是連續n個的前乙個re字元,若為\則表示連續n個以上的前乙個re字元。
例子:在g與g之間有2個到3個的o存在的字串grep –n 『go\g』 file.txt
擴充套件正規表示式,使用grep –e 或 egrep+
意義:重複乙個或乙個以上的前乙個re字元
例子:查詢(god) (good) (goood)等的字串。那麼o+代表乙個以上的o
egrep –n 『go+d』 file.txt ?
意義:零個或乙個的前乙個re字元
例子:查詢(gd) (god)這兩個字串。那個o?代表空的或1個o,
egrep –n 『go?d』 file.txt |
意義:用或(or)的方式找出多個字串
例子:查詢gd或good這兩個字串
egrep –n 『gd|good』 file.txt
( )意義:找出「組」字串
例子:查詢(glad)或(good)這兩個字串,以為g與d是重複的,所以可以將la與oo列於( )當中,並以|分隔開
egrep –n 『g(la|oo)d』 file.txt
( )+
意義:多個組重複組的判別
例子:查詢axyzxyzxyzxyzc
egrep 『a(xyz)+c』 file.txt
二、cut、grep、sort、wc、uniq
1. cut
cut-d 『分割字元' -f fields
cut -c 字元範圍(n),從第n個字元開始
引數:-d:後面接分割符,與-f一起使用;
-f:依據-d的分割符將一段資訊切割成為資料段,用-f取出第幾段的意思;
-c:以字元的單位取出固定字元區間。
例子:echo $path|cut -d 』:' -f 3,5。以:進行分割,然後取出第三和第五段
2. grep
grep[-acinv] [-a] [-b] [--color=auto] '查詢字串' filename
引數:-a:將binary檔案以text檔案的方式查詢資料;
-c:計算找到』查詢字串『的次數;
-i:忽略大小寫的不同
-n:順便輸出行號
-v:反向選擇,即顯示出沒有』查詢字串『內容的那一行
-a:後面可加數字,為after的意思,除了列出該行外,後續的n行也列出來
-b:後面可加數字,為befor的意思,除了列出該行外,前面的n行也列出來
--color=auto:找到的關鍵字部分會用特殊顏色顯示
grep --color=auto wang files,在files檔案中查詢字元wang
3. sort
sort [-fbmnrtuk] [file or stdin]
引數:-f:忽略大小寫的差異
-b:忽略最前面的空格符部分
-m:以月份的名字來排序
-n:使用『純數字』進行排序(預設是以文字型別來排序的)
-r:反向排序
-u:就是uniq,相同的資料中,僅出現一行代表
-t:分割符,預設是用tab鍵來分隔
-k:以那個區間來進行排序的意思
例子:files檔案中內容
adm:x:3:4:adm:/var/adm
bin:x:1:1:bin
apache:x:48:48
daemon:x:2:2
cat files | sort 預設以文字型別排序
adm:x:3:4:adm:/var/adm
apache:x:48:48
bin:x:1:1:bin
daemon:x:2:2
cat files | sort -t ':' -k 3 以『:』來分隔,以第三個排序
bin:x:1:1:bin
daemon:x:2:2
adm:x:3:4:adm:/var/adm
apache:x:48:48
4. uniq 去重
uniq [-ic]
引數:-i:忽略大小寫字元
-c:進行計數
例子:last | cut -d ' ' -f 1 | sort |uniq (其中last檢視登入資訊)
reboot
wtmp
wyllast | cut -d ' ' -f 1 | sort |uniq -c
7 reboot
1 wtmp
14 wyl
5. wc計算輸出資訊的整體資料,行數、字數、字元數
wc [-lwm]
引數:-l:僅列出行
-w:僅列出多少單詞
-m:多少字元數
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...