我有主目錄REPORT
內的子目錄。子目錄如TEST
,TEST_LNK
,FAIL
, FAIL_LNK
,PASS
, GOOD
,GOOD_LNK
。如何獲得只選擇的目錄名稱
現在我需要名稱中沒有_LNK
的子目錄。
例子:
我只需要這些目錄TEST,FAIL,PASS,GOOD
。
我有一個代碼,將給主目錄內的所有子目錄。
ls -lrt | egrep '^d' | awk '{print $9}
誰能幫我通過上面的命令修改得到與出_LNK
子目錄?
我有主目錄REPORT
內的子目錄。子目錄如TEST
,TEST_LNK
,FAIL
, FAIL_LNK
,PASS
, GOOD
,GOOD_LNK
。如何獲得只選擇的目錄名稱
現在我需要名稱中沒有_LNK
的子目錄。
例子:
我只需要這些目錄TEST,FAIL,PASS,GOOD
。
我有一個代碼,將給主目錄內的所有子目錄。
ls -lrt | egrep '^d' | awk '{print $9}
誰能幫我通過上面的命令修改得到與出_LNK
子目錄?
ls
具有避免不必要的輸出--hide
參數。使用如下:
ls --hide='*_lnk'
作爲替代你的命令,你可以使用find
遞歸找到所有子目錄,然後使用grep
選擇您想要的那些:
find . -type d -exec echo {} \; | grep -v "_LNK"
這裏的相關選項分別是:
-type d
:選擇類型目錄的文件只有-exec
:執行以下命令"{}"
是佔位符相匹配的文件,而"\;"
告訴找到其中的命令結束。
另一種選擇(由託比·斯佩特的意見建議)是做所有找到工作,使用'!'
否定的-name
選項:
find . -type d '!' -name '*_LNK'
此外,也沒什麼看頭,有是允許設置遞歸級別的maxdepth
選項:-maxdepth 1
表示僅在子目錄(一級)中進行搜索。
只需對命令進行最小限度的修改,添加:'| grep -v「_LNK」' –
當我用'ls -lrt | egrep'^ d'| awk'{print $ 9} | grep -v「_LNK」'它沒有給出任何輸出。我希望子目錄列表存在於父目錄'REPORT'中,其子目錄不以'_LNK'結尾 – teepu
您確定有沒有「_LNK」的子文件夾?你可以請發佈你的原始命令的結果(沒有grep -v)嗎? –