1.什麼是grep
linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expr
ession print,表示全域性正規表示式版本,它的使用許可權是所有使用者。
2.使用格式
grep [options]
例如:echo "hello world" | grep -e --color '^h'
其中的grep -e --color '^h'
以h為開頭出現一次擴充套件正規表示式
-e:擴充套件模式(extended)
去掉-e,為基準模式(basic)匹配,對於某些字元必須要取轉義
3.主要引數
[options]主要引數:
-c:只輸出匹配行的計數。
-i:不區分大 小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
pattern正規表示式主要引數:
\: 忽略正規表示式中特殊字元的原有含義。
^:匹配正規表示式的開始行。
$: 匹配正規表示式的結束行。
\\>:到匹配正規表示式的行結束。
[ ]:單個字元,如[a]即a符合要求 。
[ - ]:範圍,如[a-z],即a、b、c一直到z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0。
4.grep命令使用簡單例項
$ grep 『test』 d*
顯示所有以d開頭的檔案中包含 test的行。
$ grep 『test』 aa bb cc
顯示在aa,bb,cc檔案中匹配test的行。
$ grep 『[a-z]\』 aa
顯示所有包含每個字串至少有5個連續小寫字元的字串的行。
$ grep 『w\(es\)t.*\1′ aa
如果west被匹配,則es就被儲存到記憶體中,並標記為1,然後搜尋任意個字元(.*),這些字元後面緊跟著 另外乙個es(\1),找到就顯示該行。如果用egrep或grep -e,就不用」\」號進行轉義,直接寫成』w(es)t.*\1′就可以了。
5,常用的grep命令
(1)多個檔案查詢
grep "sort" *.doc #見檔名的匹配
(2)行匹配:輸出匹配行的計數
grep -c "48" data.doc #輸出文件中含有48字元的行數
(3)顯示匹配行和行數
grep -n "48" data.doc #顯示所有匹配48的行和行號
(4)顯示非匹配的行
grep -vn "48" data.doc #輸出所有不包含48的行
(4)顯示非匹配的行
grep -vn "48" data.doc #輸出所有不包含48的行
(5)大小寫敏感
grep -i "ab" data.doc #輸出所有含有ab或ab的字串的行
4, 正規表示式的應用
(1)正規表示式的應用 (注意:最好把正規表示式用單引號括起來)
grep '[239].' data.doc #輸出所有含有以2,3或9開頭的,並且是兩個數字的行
(2)不匹配測試
grep '^[^48]' data.doc #不匹配行首是48的行
(3)使用擴充套件模式匹配
grep -e '219|216' data.doc
(4) ...
這需要在實踐中不斷應用和總結,熟練掌握正規表示式。
Linux下find與grep指令的相關用法
grep命令 find命令是linux中最有用的命令之一。用於 在乙個目錄 及子目錄 中搜尋檔案,你可以指定一些匹配條件,如按檔名 檔案型別 使用者甚至是時間戳查詢檔案。下面就通過例項來體驗下find命令的強大。find命令的一般形式為 find h l p d debugopts olevel p...
Linux下環境相關話題
一 設定語言環境 在linux中通過locale來設定程式執行的不同語言環境,locale由 ansi c提供支援。locale的命名規則為 如zh cn.gbk,zh代表中文,cn代表大陸地區,gbk表示字符集。locale分類 語言符號及其分類 lc ctype 數字 lc numeric 比較...
linux下的grep命令
grep global search regular expression re and print out the line,全面搜尋正規表示式並把行列印出來 是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。a不要忽略二進位制資料。a 顯示列數 除了顯示符合範本樣式的那...