工作中希望通過命令能夠找到nginx的一堆conf文件中配置某個域名的conf的文件名;或者找讀書筆記里面包含某個關鍵詞的所有讀書筆記markdown文檔;
或者找到某個公司/作者/演員/tag的所有作品的文章,如果你像我一樣,記性很爛,但只是記得某個關鍵詞就想要找到以前的東西,那么看這篇就對了。
這篇文章基於Unix/Linux/MacOS
環境,當然windows如果安裝bash命令行也是可以的。通過find命令查找當前目錄下所有帶有某個字符串的文件名以及行號、或者上下文。
通過find命令查找當前目錄下所有帶有某個字符串的文件名
➜ find .|xargs grep -rl "google.com" ./pac ./pac.txt ./proxy.txt
要是可以看到當前命中行的內容就好了
➜ find .|xargs grep -r "google.com" ./pac: "google.com": 1, ./pac: "google.com.hk": 1, ./pac.txt: "||inbox.google.com", ./pac.txt: ".google.com",
要是可以打印出行號就好了
➜ find .|xargs grep -rn "google.com" ./pac:1681: "google.com": 1, ./pac:1740: "google.com.hk": 1, ./pac.txt:12: "||inbox.google.com", ./pac.txt:177: ".google.com",
要是可以列出命中行的上下文就完美了
➜ find .|xargs grep -rn1 "google.com" ./pac-1680- "allmovie.com": 1, ./pac:1681: "google.com": 1, ./pac-1682- "badassjs.com": 1, -- -- ./pac-1739- "epochtimes.fr": 1, ./pac:1740: "google.com.hk": 1, ./pac-1741- "wapedia.mobi": 1, --
PS:
http://qiancheng.me/coding/find-xargs-shell.md
linux下的find文件查找命令與grep文件內容查找命令