《Linux Shell》之一 正規表示式

2021-09-01 17:46:56 字數 1599 閱讀 4276

bash的萬用字元:

1.  ?   匹配單個字元,ls -l aa?b.txt

2.  *    匹配任意個字元  ls -l aa*b.txt

3.     匹配中括號中的任意乙個字元 ls -l aa[trh]b.txt,   ls -l aa[a-d]b.txt

4.  {}   一組表示式,用逗號,隔開,只要滿足其中一條即可  ls -l ls*a

5.  ^    在中使用,表示不等於這裡面內容的,注意:是完全匹配,跟正規表示式不一樣  ls -l [^myconfig]*.txt

6.  golbignore  內部變數globignore儲存了通配時所忽略的檔名集合

grep 命令:

基本用法:grep [選項] [模式] [檔案...]

grep命令由選項、模式、檔案三部分組成,它在乙個或多個檔案中搜尋滿足模式的文字行,模板後的所有字串被看成檔名,檔名可以多個,搜尋結果被列印到標準輸出,不影響原檔案內容。

grep命令的選項:

-c    只輸出匹配行的數量

-i    搜尋時忽略大小寫

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

-l    只列出復合匹配的檔名,不列出具體匹配行

-n   列出所有匹配行,並且顯示行號

-s   不顯示不匹配或無匹配的錯誤資訊

-v   反向匹配,顯示所有不匹配的行

-w   匹配整詞,並且以模式的字面含義去解析它,而不去解析正則式的元字元

-x    匹配整行,並且也是跟-w一樣以字面含義去解析

-r    遞迴搜尋,不僅搜尋當前工作目錄,而且搜尋子目錄

-q   禁止輸出任何結果,以退出狀態值表示搜尋是否成功

-b   列印匹配行距離檔案頭部偏移量,以位元組為單位

-o   與-b結合使用,列印匹配的詞距離檔案頭部的偏移量,以位元組為單位

-e   支援擴充套件的正規表示式

-f   不支援正規表示式,按照字串的字面意思搜尋 

posix字元類:

為了保持不同國家的字元編碼一致性,posix portable operating system inte***ce增加了特殊的字元類,以[:classname:]的格式給出,grep命令支援posix字元類,下面是posix類及其意義:

[:upper:]    表示大寫字母[a-z]

[:lower:]     表示小寫字母[a-z]

[:digit:]       表示阿拉伯數字[0-9]

[:alnum:]    表示大小寫和阿拉伯數字[a-za-z0-9]

[:space:]    表示空格或者tab鍵

[:alpha:]     表示大小寫字母[a-za-z]

[:cntrl:]       表示ctrl鍵

[:graph:]或[:print:]    表示ascii碼33~126之間的字元

[:xdigit:]      表示16進製制數字[0-9a-fa-f]

下面舉幾個例子:

# 利用posix字元類搜尋以大寫字母開頭的行

# grep '^[[:upper:]]' test.txt

精確匹配: \其實效果跟  grep -w test 是一樣的,匹配整個單詞test

standford NLP課程筆記一 正規表示式

課程位址 裡面的字元表示每個都可以,比如 ww oodchuck 可以表示woodchuck和woodchuck 1234567890 表示任何單個數字 表示範圍的 a z 表示所有大寫字母 a z 表示所有小寫字母 0 9 表示所有單個數字 表示否定的 a z 不要大寫的字母 a z 不要小寫的字...

設計誤區之一 正無窮

軟體設計中乙個忌諱就是正無窮,什麼事正無窮?下面舉例說明 eclipse,當新建乙個字串變數,字串長度有幾萬甚至幾十萬長度的時候,你會發現eclipse死在那兒了 同樣debug的時候如果遇到相當大的字串,eclipse同樣會無反應。當你想將檔案按年月日命名放在乙個資料夾下,定期讀取資料夾下所有檔案...

Linux Shell指令碼系列之一

shell的分類 使用tab鍵 進行命令和檔案目錄的補全,若當前匹配的有多個則再摁多一次,則會列出所有匹配的檔案或目錄 輸入重定向 wc 選項 檔名 選項 c 統計位元組數 w 統計單詞數 l 統計行數 管道符命令1 命令2 命令1的正確輸出作為命令2的操作物件 舉個栗子3 萬用字元?匹配乙個任意字...