grep 是一種強大的檔案搜尋擷取工具,grep可以指定搜尋特定的內容並取出我們所想要的這些內容

grep常用用法
grep [-acinv] [--color=auto] '搜尋字串' filename
選項與參數:
-a :將 binary 文件以 text 文件的方式搜尋data
-c :計算找到 '搜尋字串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行
--color=auto :可以將找到的關鍵字部分加上顏色的顯示
字串參數最好採用是雙引號,一是以防被誤解為shell命令,二是可以用來尋找多個單詞組成的字串
 
搜尋/etc/passwd檔案內容,把有出現 root 的行取出來
grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
或用另一種指令
cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
 
將/etc/passwd,有出現 root 的行取出來,同時顯示這些行在/etc/passwd的行號
 
grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
30:operator:x:11:0:operator:/root:/sbin/nologin
 
在關鍵字的顯示方面,grep 可以使用 --color=auto 來將關鍵字部分使用顏色顯示。 這是個很不錯的功能
但是如果每次使用 grep 都得要自行加上 --color=auto 又有點麻煩,此時 alias 就很好用了
你可以在 ~/.bashrc 內加上這行:alias grep='grep --color=auto' 然後再 source ~/.bashrc 來立即生效即可
這樣每次運行 grep 他都會自動幫你加上顏色顯示
如果是用C-shell 就在.cshrc裡面加上 alias grep 'grep --color=auto' 然後再 source ~/.cshrc 來立即生效即可
 
根據文件內容遞歸查找目錄,這幾個命令很使用,是查找檔案的利器
grep "root" /etc/* #在/etc目錄搜尋帶有root行的檔案
grep -r "root" /etc #在/etc目錄及其子目錄下搜尋帶有root行的檔案
grep -l -r "root" /etc #在/etc目錄及其子目錄下搜尋帶有root行的檔案,但是不顯示匹配的行,只顯示匹配的檔案

ERC_3590

Tags: , ,