2013-08-29 47 views
2

試圖編寫我的第一個compund linux查詢並運行到知識的一些空白處。需要幫助編寫複合linux查詢

這個想法是找到所有的文件,可能是.doc或.txt以及搜索文本小丑的內容。

所以我開始從根本上搜索。

$find/

然後我爲文件名添加了通配符。'

$find/-name '*.doc'...uhh oh 

第一個問題。我如何指定或?它是與管道|或雙管||要麼...?我是否需要重複這樣的名稱參數?

$find/-name '*.doc' || -name '*.txt' 

第二?在/之前...之後添加字符串的grep?

$find/-name '*.doc' || -name '*.txt' grep -H 'cat' {} \ 

最後是否有一個地方可以驗證語法/像SQLFiddle一樣運行?

TIA

+0

要了解有關命令及其參數的更多信息,請閱讀手冊頁(輸入'man ',例如'人發現'。)。 –

回答

3

「或」中發現是-o

你必須雖然再次指定查找類型。因此,像:

find/-name *.doc -o -name *.txt 

你可以簡單地把你的grep命令在眼前,只要你包裹在反引號您find命令:

grep 'whatever' `find/-name *.doc -o -name *.txt` 

有一個相當不錯的指南,尋找here

1

你想是這樣的:

find/\(-name \*.doc -o -name \*.txt \) -exec grep clown {} \; -print 

指定或內\(\)-o,運行在-execgrep,你可以驗證在bash shell的語法。

0

嘗試:

(find ./ -name "*.txt" -print0 2>/dev/null ; find ./ -name "*.doc" -print0 2>/dev/null) | xargs -0 grep clown