如要匹配Computer或computer兩個單詞,可作以下操做: [Cc]mputer 「.」容許匹配ASCII集中任意字符,或爲字母,或爲數字。 使用\{\}匹配模式結果出現的次數 匹配字母A出現兩次,並以B結尾,操做以下: A\{2\}B 匹配A至少4次,使用: A\{4,\}B 如給出出現次數範圍,例如A出現2次到4次之間: A\{2,4\}B 在grep命令中輸入字符串參數時,最好將其用雙引號括起來。例如:「mystring」。這樣作 有兩個緣由,一是以防被誤解爲shell命令,二是能夠用來查找多個單詞組成的字符串,例如: 「jet plane」,若是不用雙引號將其括起來,那麼單詞plane將被誤認爲是一個文件,查詢結果 將返回「文件不存在」的錯誤信息。 在grep命令中輸入字符串參數時,最好將其用雙引號括起來。例如:「mystring」。 這樣作有兩個緣由: 一是以防被誤解爲shell命令, 二是能夠用來查找多個單詞組成的字符串,例如:「jet plane」, 若是不用雙引號將其括起來,那麼單詞plane將被誤認爲是一個文件,查詢結果將返回「文件不存在」的錯誤信息。 在調用變量時,也應該使用雙引號,諸如:grep "$MYVAR"文件名,若是不這樣,將沒有返回結果。 在調用模式匹配時,應使用單引號。 使用grep抽取精確匹配的一種更有效方式是在抽取字符串後加\>。假定如今精確抽取48,方法以下:[???????????] #grep "48\>" data.f #grep -n "48\>" data.f #顯示行號 缺省狀況下,grep是大小寫敏感的,如要查詢大小寫不敏感字符串,必須使用-i開關。 使用正則表達式時最好用單引號括起來 假定要抽取代碼爲484和483的城市位置, #grep '48[34]' data.f 若是要抽出記錄,使其行首不是48, #grep '^[^48]' data.f 抽取以L開頭,以D結尾長度爲5個字符的全部代碼,可以使用下述方法: #grep 'L...D' data.f 查詢全部以5開始以1996或1998結尾的全部記錄 #grep '5..199[68]' data.f 第一個字符爲任意數字,第二個字符在0到5之間,第三個字符在0到6之間: #grep '[0-9][0-5][0-6]' data.f #grep '^[0-9][0-5][0-6]' data.f #以行首開始 抽取包含數字4至少重複出現兩次的全部行: #grep '4\{2,\}' data.f grep命令加-E參數,這一擴展容許使用擴展模式匹配。 例如,要抽取城市代碼爲219或216,方法以下: #grep -E '219|216' data.f 結合使用^和$可查詢空行。使用- n參數顯示實際行數: #grep -n '^$' data.f 匹配特殊字符查詢有特殊含義的字符,諸如$.'"*[]^|\+?,必須在特定字符前加\。 假設要查詢包含「.」的全部行,腳本以下: #grep '\.' data.f #grep '\"' data.f 如要查詢文件名conftroll.conf(這是一個配置文件),腳本以下: #grep 'conftroll\.conf' myfile 最多六個小寫字符,後跟句點,接着是兩個大寫字符, #grep '[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename.deposit grep中通配符*的使用 #grep 'l.*s' testfile #匹配如"looks" #grep 'oo*' testfile #匹配如"looks" 在全部文件中查詢行尾包含單詞device的全部行 #grep 'device$' * 查詢目錄列表中的目錄,方法以下: #ls -l | grep '^d' 在一個目錄中查詢不包含目錄的全部文件,方法以下: #ls -l | grep '^[^d]' 要查詢其餘用戶和其餘用戶組成員有可執行權限的目錄集合,方法以下: #ls -l | grep '^d....x..x' #ls 列出文件目錄(能夠含子目錄)及文件的完整路徑 [1] [2] 一、列出當前目錄的文件、文件夾完整路徑 ls -1 |awk '{print i$0}' i=`pwd`'/' 二、列出當前目錄及子目錄的文件、文件夾完整路徑 ls -R |awk '{print i$0}' i=`pwd`'/' 2b) 列出當前目錄及子目錄下的文件夾完整路徑 ls -FR | grep /$ | sed "s:^:`pwd`/:" 三、用find實現,好像運行要慢些 find / -name "*.*" -exec ls {} \; 四、遞歸列出當前目錄及子目錄名稱 ls -FR | grep /$ 五、遞歸列出當前目錄及子目錄名稱,包括相關屬性 ls -lR | grep "^d" # drwxr-xr-x 3 idea idea 4096 Aug 2 2009 images 六、只列出當前目錄下的子目錄 用ls只列出子目錄 ls -d */ #grep空格 [1] grep搜索帶空格的字符串須要使用'\ '來轉義空格 用 "\s" #grep查找tab [1] 其實在linux中要正確匹配tab(退格)符有兩種方式 1:用 grep $'\t' 你的文件 2:用 grep '按CTRL+V 鍵,再按TAB鍵' 你的文件 #更多詳細用法 [1]