我想編寫一個bash腳本(其中包括)找到Makefile,其中Makefile與python文件位於同一目錄中(文件看起來像* .py)。如何打印包含兩個匹配兩種不同模式的文件的目錄?
我可以通過執行兩個單獨的查找和比較輸出在幾個步驟中不恰當地完成它,但我認爲可能有辦法執行一行查找命令?它似乎應該有一種方式?
所以
path1/Makefile
path1/Some.py
path2/Makefile
path3/Makefile
path3/path4/Makefile
path3/path4/Another.py
PATH1將被打印。
path2不會。
path3不會被打印。 b/c python文件需要處於同一級別。
path3/path4將被打印。
所以一般的問題是,我可以使用find來查找包含至少兩個文件的目錄,一個匹配一個模式,另一個匹配另一個模式,但是這兩個模式都必須由單獨的文件滿足?
謝謝。
btw,我使用的是 find(GNU findutils)4.4.2。
但是,我只是感興趣的人提出的答案。我已經完成了不雅的解決方案,但很高興看到。這總是有益的和教育的。
如果您的'find'具有'-exec \ +'可能會有用,因爲您可以在內聯腳本中循環參數並單獨測試每個參數,然後直接從那裏進行打印(並跳過'-print')。 –
優秀的建議。在FreeBSD中可以正常工作,但是我現在將這個答案保留下來,因爲我不知道'-exec ... +'的背景。 – ghoti
在我的回答中添加了未經測試的建議修改版本。 –