2010-04-23 38 views
0

我是bash中的新手,我想將參數傳遞給一個python函數,該目錄中的所有文件與給定模式不匹配。某事。像:與bash中的字符串不匹配的列表文件

$ myscripts/myprog.py $ myfiles的/(bonjovi

上面的例子應該檢索不匹配的所有文件 「bonjovi」!

最良好的祝願

回答

2

這可能是最容易使用grepxargs和正則表達式。 grep -v不包括匹配給定模式的行(在這種情況下是文件名)。

ls | grep -v 'bonjovi' | xargs myscripts/myprog.py 
+0

非常感謝Charles!我怎麼也可以使用正則表達式的grep參數?讓我們說: ls | grep -v'* bonjovi_album1 *'| xargs myscripts/myprog.py 我做了一個小測試,但在輸出中也檢索到「bonjovi_album1」。 – Javier 2010-04-23 10:45:49

+0

'* bonjovi_album1 *'不是一個有效的正則表達式,因爲在第一個'*'之前什麼也沒有。 'echo bonjovi_album1 | grep -v'bonjovi_album1 *'適用於我,但它可能不會達到您的預期。它刪除任何包含「bonjovi_album」,然後是0或更多的「1」。在這種情況下,它相當於'bonjovi_album'模式。 – 2010-04-23 11:22:29

3

您的語法完全正確。你只需要啓用它。

shopt -s extglob 
相關問題