我發現某些命令中的某些行是「不可修復的」。一個很好的例子,如果你有一個Git倉庫:grep/sed無法獲得的Bash/Shell輸出
git ls-remote | grep inexistent-match
它返回,反正一條第一線 「從[email protected]:[...]」(或類似的東西)。
我甚至不知道它是什麼,所以我很抱歉,如果一個線程已經存在。
我該如何grep/sed這些第一個輸出?
謝謝你們!
我發現某些命令中的某些行是「不可修復的」。一個很好的例子,如果你有一個Git倉庫:grep/sed無法獲得的Bash/Shell輸出
git ls-remote | grep inexistent-match
它返回,反正一條第一線 「從[email protected]:[...]」(或類似的東西)。
我甚至不知道它是什麼,所以我很抱歉,如果一個線程已經存在。
我該如何grep/sed這些第一個輸出?
謝謝你們!
你只grepping stdout
當一些數據將stderr
嘗試git ls-remote 2>&1 | grep inexistent-match
的2>&1
將重定向stderr
到stdout
試試這個:
$ git ls-remote > /dev/null
是無法制止的線路仍然顯示出來?試試這個:
$ git ls-remote 2> /dev/null
難道ungrepable線消失?
如果是這樣,Oliver Matthews是正確的。
更糟糕,不禁要問這是如何彌補答案。 *請不要打擾解釋。* – devnull
這將顯示OP是否看到實際上在STDERR上。程序總是有機會打開另一個FD並打印出來。我們遇到了這個問題,我們試圖對輸出進行grep,並發現該程序正在將它們打印到FD4。 –
哇!謝謝!它很快......任何進一步的閱讀/參考? –
你可以做比看http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc3 –