我有一個包含多個子檔案夾的檔案夾,在其中一些子檔案夾中我有文本檔案 example_1.txt、example_2.txt 等。example_1.txt 可能在 subfolder1 中找到,一些子檔案夾不包含文本檔案。
如何列出包含以 開頭的文本檔案的所有目錄example?
我可以通過運行此命令找到所有這些檔案
find . -name "example*"
但是我需要做的是找到這些檔案所在的目錄?我需要一個這樣的串列subfolder1, subfolder4, subfolder8等等。不知道該怎么做。
uj5u.com熱心網友回復:
您必須使用以下命令,
find . -name "example*" | uniq -u | awk -F / '{print $2}'
uj5u.com熱心網友回復:
- 查找最小深度為 2 的子檔案夾中的所有檔案以避免此檔案夾 (.)
- 使用 xargs 目錄名獲取目錄名
- 使用 sort -u 對輸出串列進行排序并使檔案夾唯一
- 僅列印帶有 awk 的基本名稱(分隔符是 /,最后一個字串是 $NF)。在每個子檔案夾后添加“,”
- 用 tr 翻譯空格中的換行符
- 用 sed 洗掉最后一個“,”
list=$(find ./ -mindepth 2 -type f -name "example*"|xargs dirname|sort -u|awk -F/ '{print $NF","}'|tr '\n' ' '|sed 's/, $//')
echo $list
flow, over, stack
uj5u.com熱心網友回復:
僅列印目錄路徑的建議find命令。
比對路徑進行排序。
比洗掉重復。
find . -type f -name "example*" -printf "%h\n"|sort|uniq
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455251.html
下一篇:減少通話次數
