2016-07-07 141 views
1

我想找到有一個字符串「你好」但不應該包含字符串「helloworld」的罐子。 我試圖像下面的命令,如何查找有一個字符串匹配的字符串和一個字符串在Linux中不匹配

find . -iname '*.jar' -printf "unzip -c %p | grep -q 'hello' && grep -qL 'helloworld' && echo %p\n" | sh 

這是不正確的給予jars.Would想知道傳遞兩個條件的grep命令?

+0

這可能有助於http://stackoverflow.com/questions/14952678/how-to-find-a-list-of-jar-files-that-c​​ontains -a-special-class-in-unix – Athar

回答

0
find . -name "*.jar" -exec bash -c 'f={};jar tf $f| grep "hello" | grep -q -v "helloworld" && echo $f' \; 
+0

儘管此代碼可能有助於解決問題,但 提供了關於_why_和/或_how_的其他上下文,回答此問題將顯着提高其長期價值。但這是無關緊要的 - 你不應該回答題外話題 - 相反,請將它們標記爲 注意,它們將被合適地關閉或遷移 。 –

+0

以上命令得到的bash:罐子:命令未找到 的bash:罐子:命令未找到 的bash:罐子:命令未找到 bash的:沒有發現命令 bash下:罐罐:命令未找到 – jenny

0

試試這個:

find . -iname '*.jar' | grep hello | grep -v helloworld 
+0

儘管此代碼可以是幫助解決問題, 提供了關於_why_和/或_how_的其他上下文,回答這個問題將顯着提高其長期價值,特別是在回答這樣一個不明確的問題時。請[編輯]你的答案,增加一些 的解釋,並澄清你認爲問題的實際含義。 –

+0

嗨Assaf,上述命令仍然給罐子helloworld。 – jenny