1
我想在g ++的控制檯輸出中用「on」替換所有「no」。我試圖G ++和sed pipeline
$ g++ | sed -e 's/no/on/g'
但它顯示
的i686-蘋果darwin9-G ++ - 4.0.1:沒有輸入文件
,而不是
的i686 -apple-darwin9-g ++ - 4.0.1:on輸入文件
我想在g ++的控制檯輸出中用「on」替換所有「no」。我試圖G ++和sed pipeline
$ g++ | sed -e 's/no/on/g'
但它顯示
的i686-蘋果darwin9-G ++ - 4.0.1:沒有輸入文件
,而不是
的i686 -apple-darwin9-g ++ - 4.0.1:on輸入文件
消息到達標準錯誤,但shell管道操作員將一個進程的標準輸出連接到下一個進程的標準輸入。
改道標準錯誤,使用
$ g++ 2>&1 | sed -e 's/no/on/g'
或
$ g++ |& sed -e 's/no/on/g'
得到
g++: on input files
哇,59秒...謝謝!我不知道如何將錯誤流重定向到標準流。 – Klaus 2010-01-29 21:34:50
'|&'在Bash 4.0中是新的,儘管它已經在其他shell(比如zsh)中使用了更長的時間。 – ephemient 2010-01-29 21:58:11