2017-06-13 22 views
0

專家,如何在xargs命令中使用&>>?

在此之後question我執行以下命令:使用

xargs的說法POSIX:

find <somePath> -name '*.html' | sort -n | xargs -I{} sh -c 'w3m "{}" &>> "test.log"' --{} 

我收到以下錯誤:

  • file.hml: -c:第0行:意外標記附近的語法錯誤`>'
  • file.hml:-c:行0:`w3m的名 「.html」 & >> 「test.log中」」

爲什麼bash的不理解& >>在我行執行?

As @Nahuel Fouilleul表示「sh(posix)不承認(bash)重定向& >>」。

xargs的參數使用bash

但是建議不工作時,我執行以下命令解決方法:

find <somePath> -name '*.html' | sort -n | xargs -I{} w3m {} &>> "test.log" 

我收到此錯誤:

  • 慶典:語法錯誤接近意想不到的標記`>'

爲什麼bash不明白& >>在我的行執行?看到我的回答

+0

你通過一些路徑替換? –

回答

2

如果sh(posix)不能識別(bash)重定向&>>,它可能不起作用。 但該命令仍然可以打破某些文件名。

命令應該是。

.. | xargs -I{} bash -c 'w3m "$1" &>> "test.log"' "process_name_you_want" {} 

或避免打開每個文件重定向日誌文件可以移出

.. | xargs -I{} w3m {} &>> "test.log" 

編輯:答案是普通的工具,處理文件,並寫入到輸出,看着w3m的工具之後,它似乎是一個控制檯中的Web瀏覽器,你想要做什麼?

+0

謝謝 我試過第二個解決方案「.. | xargs -I {} w3m {}&>>」test.log「,我收到以下錯誤:bash:語法錯誤附近出現意外的令牌'>' 我有html文件在一個目錄中,我想將它們轉儲到一個日誌文件中,因此我使用w3m來顯示標準輸出中html文件的信息。 –

0

here我意識到運營商「& >>」僅可從Bash版本4獲得。我正在使用Bash版本3.2.51,所以它不起作用。

對於以前來砸4個兩家運營商版本需要:

w3m >> test.log 2>&1 

其中:

「>>」 附加標準輸出測試。日誌

「2> & 1」重定向標準錯誤到了SDOUT會

因此,與xargs的工作命令如下:

.. | xargs -I{} w3m {} >> "test.log" 2>&1 
相關問題