2015-09-20 406 views
1

如何從BASH腳本強制查詢輸出到文件中?bash,如何標準輸出到文件

我已經試過

> file.txt 
| >> file.txt 

和幾個

我一直吹出來的語法錯誤,或只是將無法正常工作。

find fixed/pdf/ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "Ascend"' \; | 2>&1 dump.txt 
+5

代替'| | 2>&1 dump.txt'嘗試'> dump.txt 2>&1' – anubhava

+0

@doh什麼'find fixed/pdf/-name'* .pdf'-exec sh -c'pdftotext「{}」 - | grep --with-filename --label =「{}」--color「Ascend」';產生沒有重定向? – BroSlow

回答

2

您可以使用:

find fixed/pdf/ -name '*.pdf' -exec sh -c 'pdftotext "$1" - | 
    grep --with-filename --label="$1" --color "Ascend"' - '{}' \; > dump.txt 2>&1 

要標準輸出和標準錯誤重定向到文件dump.txt

+2

請注意'{}'不是用於這種方式!這是非常不安全的,並使命令受到代碼注入。有近300k的代表,你也應該提到這一點,並展示如何正確使用'{}'''''。此外,它也是錯誤的,正如POSIX指定的那樣:_如果utility_name或參數字符串包含兩個字符「{}」,而不是兩個字符「{}」,則它是實現定義的,find是替換這兩個字符還是使用字符串沒有改變._ –

+1

謝謝,是的,這是非常有效的一點。我現在編輯它。 – anubhava

相關問題