grep命令
創(chuàng)新互聯(lián)是專業(yè)的西烏珠穆沁網(wǎng)站建設公司,西烏珠穆沁接單;提供成都網(wǎng)站建設、網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行西烏珠穆沁網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
grep
1.作用
Linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權(quán)限是所有用戶。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
2.格式及主要參數(shù)
grep [options]
主要參數(shù): grep --help可查看
-c:只輸出匹配行的計數(shù)。
-i:不區(qū)分大小寫。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
--color=auto :可以將找到的關鍵詞部分加上顏色的顯示。
pattern正則表達式主要參數(shù):
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結(jié)束行。
\:從匹配正則表達 式的行開始。
\:到匹配正則表達式的行結(jié)束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字符。
*:所有字符,長度可以為0。
3.grep命令使用簡單實例
itcast$ grep ‘test’ d*
顯示所有以d開頭的文件中包含 test的行
itcast $ grep ‘test’ aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
itcast $ grep ‘[a-z]\{5\}’ aa
顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。
itcast $ grep ‘wesest.*\1′ aa
如果west被匹配,則es就被存儲到內(nèi)存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著 另外一個es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進行轉(zhuǎn)義,直接寫成’w(es)t.*\1′就可以了。
4.grep命令使用復雜實例
明確要求搜索子目錄:
grep -r
或忽略子目錄
grep -d skip
如果有很多輸出時,您可以通過管道將其轉(zhuǎn)到’less’上閱讀:
itcast$ grep magic /usr/src/Linux/Documentation/* | less
這樣,您就可以更方便地閱讀。
有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。
下面還有一些有意思的命令行參數(shù):
grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
例如:grep "abc\|xyz" testfile 表示過濾包含abc或xyz的行
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可顯示行號信息
grep -c pattern files 即可查找總行數(shù)
還有些用于搜索的特殊符號:\ 和 \ 分別標注單詞的開始與結(jié)尾。
例如:
grep man * 會匹配 ‘Batman’、’manic’、’man’等,
grep ‘\man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\man\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’: 指匹配的字符串在行首,
在對某個目錄進行壓縮的時候,有時候想排除掉某個目錄.
例如:如果123目錄下有3個子目錄,aa、bb、cc.我現(xiàn)在想只對aa和bb目錄打包壓縮,命令如下:
tar?-zcvf?123.tar.gz??--exclude=cc?123
使用exclude參數(shù)來過濾不需要的目錄或文件,排除某個文件的操作和目錄一樣.
1、首先登錄進linux系統(tǒng),右鍵單擊選擇Open In Terminal選項
2、接下來我們在打開的終端命令行,首先用pwd命令查看當前目錄,然后運用cp命令進行文件的復制,如下圖所示,注意復制后的文件名稱被修改了
3、回到桌面,我們可以看到已經(jīng)有2個文件了,并且復制的文件名稱也已改變
4、最后我們還可以通過cp命令直接復制文件夾到另一個文件夾,linux文件夾就可以排除某個文件了。
可以使用zip命令的-x參數(shù)排除指定的文件。
1、舉例說明,test目錄下有1.png、2.tt、good.txt三個文件,現(xiàn)在將test目錄壓縮成test.zip,排除其目錄下的good.txt,如下圖所示。
2、執(zhí)行如下命令,排除test目錄下的good.txt文件。
zip?-r?test.zip?test?-x?"./test/good.txt"
說明:-r是遞歸壓縮,-x后面排除good.txt。
3、補充一下zip命令的常用參數(shù):
-r?遞歸壓縮,將指定目錄下的所有文件以及子目錄全部壓縮
-d?從壓縮文件內(nèi)刪除指定的文件
-i?“文件列表”?只壓縮文件列表中的文件
-x?“文件列表”?壓縮時排除文件列表中指定的文件
-u?更新文件到壓縮文件中
-m?將文件加入壓縮文件壓縮后,刪除原始文件,即把文件移到壓縮文件中
-F?嘗試修復損壞的壓縮文件
-T?檢查壓縮文件內(nèi)的每個文件是否正確無誤
- 壓縮級別 壓縮級別是一個1~9的數(shù)字