linux其實和internet一樣,都是乙個充滿了大量資訊、資料的東西,如何有效的過濾自己不用的資訊、獲取有用的資訊反映了乙個人水平的高低,這時候用各種工具與正則的結合變的異常強大
正規表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查乙個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
awk 對於從大的資料檔案中抽取指定的資料報十分有用,比如你可以用他來管理passwd檔案,或者是日誌檔案(相當巨大的檔案,而用了awk就會變的很輕鬆了),通常awk都是和grep結合來用的,用grep抽出行,再用awk抽出行中指定的列,不過就算單獨用awk也一樣好用。
正規表示式只是一種表示法,只要工具支援這種表示法, 那麼該工具就可以處理正規表示式的字串。find、vim、grep、awk 、sed 都支援正規表示式,也正是因為由於它們支援正則,才顯得它們強大
正則可以在許多種
不同的unix/linux 程式中使用,例如:find,grep,expr,vi,sed等
不同的程式語言中使用,例如:awk,perl,python等
在不同的程式與語言中有一些差異
下面的都是典型的通用概念,
預定義字元類
[:alnum:] alphanumeric characters.
[:alpha:] alphabetic characters.
[:blank:] space or tab characters.
[:cntrl:] control characters.
[:digit:] numeric characters.
[:graph:] characters that are both printable and visible. (a space is printable, but not visible, while an a is both.)
[:lower:] lower-case alphabetic characters.
[:print:] printable characters (characters that are not control characters.)
[:punct:] punctuation characters (characters that are not letter, digits, control characters, or space characters).
[:space:] space characters (such as space, tab, and formfeed, to name a few).
[:upper:] upper-case alphabetic characters.
[:digit:] characters that are hexadecimal digits.
grep 支援三種正則 基本 擴充套件 perl
正規表示式語法支援情況
命令或環境.
[ ]
^
$
\( \)
\
?
+
|
( )
vix
x x
x x
visual c++
x x
x x
x awk
x x
x x
x x
x x
sedx
x x
x x
x tcl
x x
x x
x x
x x
x ex
x x
x x
x x
grep
x x
x x
x x
egrepx x
x x
x x
x x
x fgrep
x x
x x
x perlxx
***x
xxx
命令名正則
通配ls
*grep**
find
*sed
*awk
* [root@250-shiyan ~]# df|sed -n '/\/$/p'|awk ''|sed 's/%//'
[root@250-shiyan ~]# df|grep "/$"|awk ''|sed 's/%//' grep awk sed 合稱拼命三郎或三劍客
cut也是乙個比較強大的工具,可以對一行字串進行多種模式匹配的剪下操作,也可以對乙個排列非常整齊的文字進行操作
cut -d ':' -f 2 以分隔符為界
cut -c 2-5 以字母為界
grep主要對行過濾查詢
sed options 『command』 file
options
p 列印
s 搜尋
sed和grep主要是對文字進行「行」的操作,sed與awk是文字處理工具
awk方法主要是對文字進行「列」的操作,awk會把每一列都取乙個名字,從第一列開始:分別為$1,$2...$n
awk [-f] "field-operator" 'comand' inputfiles
-f和field-operator一起使用,field-operator是域分隔符,如果不使用-f選項,則預設的域分隔符為空格。後面command命令一般需要用一堆「{}」括起來,然後進行必要的操作
sed -n 只將符合模式的行列出來
命令名列操作
行操作輸入
cutinput file
std input
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...