回答
annotate-output,從Debian的devscripts,這樣做。
在其手冊頁的例子:
$ annotate-output make 21:41:21 I: Started make 21:41:21 O: gcc -Wall program.c 21:43:18 E: program.c: Couldn't compile, and took me ages to find out 21:43:19 E: collect2: ld returned 1 exit status 21:43:19 E: make: *** [all] Error 1 21:43:19 I: Finished with exitcode 2
嘗試這種情況:
(myCommand | sed s/^/stdout:/ >> myLogfile) 2>&1 | sed s/^/stderr:/ >> myLogFile
第1配管插入一個stdout:
前綴的myCommand
標準輸出,並將其追加到myLogFile
。
圓括號用於製作所有這些命令。他們表示,進一步的重定向適用於括號內的內容,而不適用於sed
。
然後將標準錯誤重定向到標準輸出2>&1
(請記住原始標準輸出已重定向到myLogFile
)。第二個管道插入stderr:
前綴並將其附加到myLogFile
。
我摸索着我對這種方式,但你是乾淨多了。 – 2010-03-12 12:31:34
你能詳細解釋一下這個答案嗎?我想我明白了,除了括號... – 2010-03-12 23:50:39
爲方便起見,'2&&1 |'可以寫成'|&'在Bash 4或zsh中。它與'> file'或'>&file'是有些對稱的,它們是'> file 2>&1'的快捷方式。 – ephemient 2010-03-13 07:14:59
- 1. 將stdout和stderr重定向到C++中的單個文件
- 2. 將stdout和stderr重定向到單獨的文件和屏幕
- 3. 將stdout和stderr重定向到函數
- 4. 將stdout和stderr重定向到C++中的文件
- 5. 將perl中的STDOUT/STDERR重定向到一個txt文件?
- 6. PERL無法將stdout和stderr重定向到輸出文件
- 7. 將stdout和stderr都重定向到單個文件並保留消息順序
- 8. 將stdout/stderr重定向到多個文件
- 9. 重定向stdout和stderr到一個文件
- 10. Tomcat將'stderr'內容重定向到'stdout'
- 11. 將子進程stderr重定向到stdout
- 12. 如何將stdout和stderr重定向到文件AND仍只輸出stderr?
- 13. STDERR重定向到STDOUT,然後到一個文件
- 14. 使用dup2將stdout/stderr重定向到同一文件
- 15. 如何將stderr重定向到Ant中的stderr或stdout?
- 16. 將Stdin和Stdout重定向到文件
- 17. nohup和sed,重定向stderr和stdout
- 18. 重定向stdout和stderr的輸出?
- 19. dup2將stdout和stderr重定向到另一個文件描述符
- 20. 如何將程序的stdout和stderr重定向到一個文件,並將同一個stderr重定向到另一個文件?
- 21. 將stderr和stdout重定向到dev/null的語法
- 22. 如何將stdout和stderr重定向到Python中的記錄器
- 23. 將STDOUT的PHP通知和警告重定向到STDERR
- 24. ksh將stdout和stderr重定向到不同的進程
- 25. 如何重定向stdout和stderr流(Multiplatform)?
- 26. 捕捉變量stdout和stderr重定向
- 27. 在DOSKEY宏中重定向STDERR和STDOUT
- 28. Bash stderr和stdout重定向失敗
- 29. 實時重定向stdout和stderr
- 30. 如何在Java中將子進程stdout/stderr重定向到主進程stdout/stderr?
選擇了這個答案,因爲它在維持秩序方面更好,儘管你必須一直衝洗輸出...... – 2010-03-13 19:15:23