
例子。我有一個我正在尋找的詞,說“貓”。我知道這個詞可以位於目前工作目錄下的任何位置。所以我用grep -r,這給出了以下形式的結果:
./example_root/[dir1|dir2]/[SOME_ARBITRARY_SUBPATH]/cat_file,
在哪裡
貓文件
是包含該單字的文件“貓”。如果我只感興趣怎麼辦
/example_root/dir1/[whatever_path]
我的路徑的前綴?我該如何告訴它grep?
答案1
我會嘗試
grep -rl cat directory | xargs dirname
在哪裡
grep -rl cat directory
遞歸搜尋 (-r
) 目錄中的 cat 和 (-l
) lisy 檔案。| xargs dirname
每個檔案都被「給予」dirname
,從而刪除檔案部分。
答案2
@Kusalananda 在評論中的回答就是我想要的:就這樣做
grep -r 'cat' /example_root/dir1/
但是,如果您想檢索單字所在的目錄名稱,以下內容(歸功於@Archemar)會很方便。
grep -rl cat directory | xargs dirname