強大的find和grep命令

2021-07-30 16:23:41 字數 2690 閱讀 5736

悲哀,寫這個的時候快寫完了去上課,下課回來關閉了軟體啥都沒了,心塞塞,簡單再寫一遍吧

命令列 man find 基本都在裡面了

find

[-h]

[-l]

[-p]

[-d debugopts]

[-olevel]

[starting-point...]

[expression]

其實平常來講,上面幾個引數壓根用不到,反正我沒有用過

一般find命令可以簡化為

find

[path...]

[expression]

刪除4天內產生的所有log檔案,刪除前確認

find . -name 「*.log」 -mtime -4 -ok rm {} \;

在使用find命令的-exec選項處理匹配到的檔案時, find命令將所有匹配到的檔案一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令執行幾分鐘之後,就會出現溢位錯誤。錯誤資訊通常是「引數列太長」或「引數列溢位」。這就是xargs命令的用處所在,特別是與find命令一起使用。

find命令把匹配到的檔案傳遞給xargs命令,而xargs命令每次只獲取一部分檔案而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分檔案,然後是下一批,並如此繼續下去。

一起使用的例子

查詢系統中的每乙個普通檔案,然後使用xargs命令來測試它們分別屬於哪類檔案

find . -type f -print | xargs file

在整個系統中查詢記憶體資訊轉儲檔案(core dump) ,然後把結果儲存到/tmp/core.log 檔案中:

find / -name 「core」 -print | xargs echo 「」 >/tmp/core.log

用grep命令在所有的普通檔案中搜尋hostname這個詞

find . -type f -print | xargs grep 「hostname」

刪除3天以前的所有東西

find ./ -mtime +3 -print|xargs rm -f –r

find . -ctime +3 -exec rm -rf {} \;

刪除檔案大小為零的檔案

find ./ -size 0 | xargs rm -f &

find命令配合使用exec和xargs可以使使用者對所匹配到的檔案執行幾乎所有的命令。

grep (global search regular expression(re) and print out the line,全面搜尋正規表示式並把行列印出來)是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。

synopsis

grep [options] pattern [file…]

grep [options] [-e pattern]… [-f file]… [file…]

具體使用看man吧,這裡給幾個例子

顯示所有以d開頭的檔案中包含test的行

grep 『test』 d*

通過管道過濾ls -l輸出的內容,只顯示以a開頭的行

ls -l | grep 『^a』

grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫

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 pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

grep命令常用引數和正規表示式:

-i :忽略大小寫

-c :列印匹配的行數

-l :從多個檔案中查詢包含匹配項

-v :查詢不包含匹配項的行

-n:列印包含匹配項的行和行標

re(正規表示式)

\ 忽略正規表示式中特殊字元的原有含義

^ 匹配正規表示式的開始行

$ 匹配正規表示式的結束行

\< 從匹配正規表示式的行開始

> 到匹配正規表示式的行結束

[ ] 單個字元;如[a] 即a符合要求

[ - ] 範圍 ;如[a-z]即a,b,c一直到z都符合要求

. 所有的單個字元

找出所有不是.c的檔案

find . -type f |grep -v *.c

參考文獻:

查詢命令find 和grep

一般來說,find 是指查詢檔案,以檔名為依據,當然也可以指目錄,而grep是查詢字串,以查詢內容為主。當然二者還可以混合使用。find 格式 find path options tests actions 幾個簡單例子 find name test.txt print find type d te...

find和grep命令例項

find命令語法 find path.expression find命令引數 print exec ok 詳細解釋參考鏈結1和鏈結2 find命令選項 name perm prune user group mtime n n nogroup nouser newer file1 file2 type...

linux的grep和find命令

在linux下面工作,有些命令能夠大大提高效率。本文就向大家介紹find grep命令,他哥倆可以算是必會的linux命令,我幾乎每天都要用到他們。本文結構如下 grep命令 find命令是乙個無處不在命令,是linux中最有用的命令之一。find命令用於 在乙個目錄 及子目錄 中搜尋檔案,你可以指...