尋找目錄中檔案的字串 grep -n \"str\" -r ./ 這是尋找目前的目錄下以及下轄子目錄下所有包含str字串的檔案
如何用grep在本目錄及其所有的子目錄下的檔案裡面尋找字串abc?
grep -R abc *
要找隱藏檔案,可以:
grep -R abc * .*
find ./ -type f|xargs grep abc
以前寫的一個小指令碼,不過沒用grep,不知是否合lz用
#!/bin/bash
# create by krqi ^_^,glade to help u
find . -type f -exec gawk \'BEGIN{n=0} {if($0~/\'\"$1\"\'/){a[n++]=FNR\" \"$0}}END{if(n>0){print(FILENAME);for(i=0;i<n;++i)print a;}}\' {} /; 2>/dev/null
列印目前的目錄下檔案中包含指定的字串資訊,
首先列印檔案名,然後列印所尋找的字串在該檔案中的行號並列印出該行。
希望對大家工作有所協助:)
用法: 比如你把它存為 myfind,然後這樣使用
myfind \"what u want find\"
然後就把目前的目錄下(包含子目錄),所有包含\"what u want find\"的資訊列印出來了:)
find 是進階的尋找檔案工具,可不像 whereis 那麼“陽春白雪”。但也因為它太進階了,複雜到很多人用不熟練。我們盡量只舉簡單的例子。
最簡單的格式如下:
find / -name my* -print
這個意思是請它從最底層的主目錄開始找,找出檔案名稱是 my 開頭的檔案,把它顯示出來。-print 選項是顯示,您可把它當做固定要加上的項目。
但它還可以用時間來找,例如:
find /usr -atime 3 –print
會從 /usr 目錄開始往下找,找最近3天之記憶體取過的檔案。
find /usr -ctime 5 –print
會從 /usr 目錄開始往下找,找最近5天之內修改過的檔案。
find /doc -user jacky -name \'j*\' –print
會從 /doc 目錄開始往下找,找jacky 的、檔案名稱開頭是 j的檔案。
find /doc /( -name \'ja*\' -o- -name \'ma*\' /) –print
會從 /doc 目錄開始往下找,找尋檔案名稱是 ja 開頭或者 ma開頭的檔案。
find /doc -name \'*bak\' -exec rm {} /;
會從 /doc 目錄開始往下找,找到凡是檔案名稱結尾為 bak的檔案,把它刪除掉。-exec 選項是執行的意思,rm 是刪除命令,{ } 表示檔案名稱,“/;”是規定的命令結尾。