linux正規表示式 grep egrep用法

2021-06-07 22:05:58 字數 3988 閱讀 3200

令1 && 命令2     如果這個命令1執行成功& &那麼執行這個命2

mv myfile myfile2 && echo "if you are seeing this then mv was success!"

如果| |左邊的命令(命令1)未執行成功,那麼就執行| |右邊的命令(命令2)

mv myfile myfile2 && echo "if you are seeing this then mv was success! "

從乙個審計檔案中抽取第1個和第2個域,並將其輸出到乙個臨時檔案中,如果這一操作未成功,我希望能夠收到乙個相應郵件:

awk '' test3 >test2 || echo "sorry the extraction didn't work " | mail root

如果使用來代替(),那麼相應的命令將在子s h e l l而不是當前s h e l l中作為乙個整體被執行,只有在中所有命令的輸出作為乙個整體被重定向時,其中的命令才被放到子s h e l l中執行,否則在當前s h e l l執行。

例子:如果s o r t命令執行成功了,可以先將輸出檔案備份,然後再列印

test.sorted && (cp test.sorted test.sorted_bak ;lp test.sorted)

^                                 行首

$                                 行尾

^ [ t h e ]                      以t h e開頭行

[ s s ] i g n a [ l l ]              匹配單詞s i g n a l、s i g n a l、s i g n a l、s i g n a l

[ss]igna[ll]".                同上,但加一句點

[ m a y m a y ]             包含m a y大寫或小寫字母的行

^ u s e r $                  只包含u s e r的行

[tty]$                           以t t y結尾的行

" .                                帶句點的行

^ d . . x . . x . . x          對使用者、使用者組及其他使用者組成員有可執行許可權的目錄

^ [ ^ l ]                        

排除關聯目錄的目錄列表

^[^d]                ls –l | grep ^[^d] 

只顯示非資料夾的檔案

[ . * 0 ]                       0之前或之後加任意字元

[ 0 0 0 * ]                  0 0 0或更多個

[ ii]                             大寫或小寫i

[ i i ] [ n n ]                大寫或小寫i或n

[ ^ $ ]                         空行

[ ^ . * $ ]                     匹配行中任意字串

^ . . . . . . $                  包括6個字元的行

[a- za-z]                     任意單字元

[ a - z ] [ a - z ] *         

至少乙個小寫字母

[ ^ 0 - 9 " $ ]                非數字或美元標識

[ ^ 0 - 0 a - z a - z ]     非數字或字母

[ 1 2 3 ]                       1到3中乙個數字

[ d d ] e v i c e            單詞d e v i c e或d e v i c e

d e . . c e                    前兩個字母為d e,後跟兩個任意字元,最後為c e

" ^ q                            以^ q開始行

^ . $                            僅有乙個字元的行

^".[0-9][0-9]                以乙個句點和兩個數字開始的行

' " d e v i c e " '            

單詞d e v i c e

d e [ v v ] i c e " .               

單詞d e v i c e

或d e v i c e

[ 0 - 9 ] " - [ 0 - 9 ] " - [ 0 - 9 ] "       對日期格式d d - m m - y y y y

[ 0 - 9 ] " " . [ 0 - 9 ] " " . [ 0 - 9 ] " " . [ 0 - 9 ] " i p位址格式

[ ^ . * $ ]                     匹配任意行

[a-za-z]*            

匹配所有單詞

-c 只輸出匹配行的計數。

-i 不區分大小寫(只適用於單字元)。

-h 查詢多檔案時不顯示檔名。

-l 查詢多檔案時只輸出包含匹配字元的檔名。

-n 顯示匹配行及行號。

-s 不顯示不存在或無匹配文字的錯誤資訊。

-v 顯示不包含匹配文字的所有行。

例子grep -v "sort" tab2     

顯示不包含匹配文字的所有行

grep -n "sort" tab2     

顯示匹配行及行號

grep -c "sort" tab2     

只輸出匹配行的計數

精確匹配: grep "01">" tab2

grep -in "code" tab2    

忽略大小寫

多次過濾

grep -in "code" tab2 | grep "02"

使用grep匹配「與」或者「或」模式

g r e p

命令加- e引數,這一擴充套件允許使用擴充套件模式匹配。例如,要抽取城市**為2 1 9或2 1 6,方法如下:

grep –e 『219|216』 tab2

類                        等價的正規表示式

[ [ : u p p e r : ] ]       [ a - z ]

[ [ : a l n u m : ] ]          [ 0 - 9 a - za-z]

[ [ : l o w e r : ] ]        [ a - z ]

[ [ : s p a c e : ] ]         

空格或t a b鍵

[ [ : d i g i t : ] ]         [ 0 - 9 ]

[ [ : a l p h a : ] ]       [ a - z a - z ]

大多數系統管理員稱 

/ d e v / n u l l

為位元池

, 可以將之看成乙個無底洞,有進沒有出,永遠也不會填滿。

要檢視d n s

伺服器是否正在執行(通常稱為

n a m e d

),方法如下

ps -ef | grep "name"|grep -v "grep"

e g r e p

接受所有的正規表示式,

乙個顯著特性是可以以乙個檔案作為儲存的字串,然後將之傳給

e g r e p

作為引數,為此使用

- f開關。

egrep -f par2 tab2    par2是檔案,裡面包括各種匹配的具體格式

如果要查詢儲存**

3 2 l

或2 c c

,可以使用(

|)符號,意即「

|」符號兩邊之一或全部。

egrep '(code|sort)' tab2

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...

正規表示式 Linux

主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...

Linux正規表示式

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...