如要匹配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] 1、列出當前目錄的文件、文件夾完整路徑 ls -1 |awk '{print i$0}' i=`pwd`'/' 2、列出當前目錄及子目錄的文件、文件夾完整路徑 ls -R |awk '{print i$0}' i=`pwd`'/' 2b) 列出當前目錄及子目錄下的文件夾完整路徑 ls -FR | grep /$ | sed "s:^:`pwd`/:" 3、用find實現,好像運行要慢些 find / -name "*.*" -exec ls {} \; 4、遞歸列出當前目錄及子目錄名稱 ls -FR | grep /$ 5、遞歸列出當前目錄及子目錄名稱,包括相關屬性 ls -lR | grep "^d" # drwxr-xr-x 3 idea idea 4096 Aug 2 2009 images 6、只列出當前目錄下的子目錄 用ls只列出子目錄 ls -d */ #grep空格 [1] grep搜索帶空格的字符串需要使用'\ '來轉義空格 用 "\s" #grep查找tab [1] 其實在linux中要正確匹配tab(退格)符有兩種方式 1:用 grep $'\t' 你的文件 2:用 grep '按CTRL+V 鍵,再按TAB鍵' 你的文件 #更多詳細用法 [1]