2016-07-07 50 views
1

在使用異步庫在一個終端中同時執行2個作業的過程中,區分哪個消息來自哪個作業將很好。
在執行第三方應用程序期間,是否有辦法在Sys.command的每行輸出的開頭附加手動字符串? 例如:
JOB1:MESSAGE1
JOB1:消息2
作業2:MESSAGE1
我見過的例子有Unix.open_process_in輸出重定向的,但是,將它連同異步工作嗎?將字符串附加到Sys.com和輸出的每一行

回答

3

我不確定您的設置的哪一部分是第三方。

job1-command 2>&1 | sed -u 's/^/Job 1: /' 

從UNIX:如果您在命令行控制,而你在某種類Unix系統的運行,你可以通過剛剛經歷的sed發送輸出得到你想要的一個粗略的估計命令行它看起來像這樣:

$ date 2>&1 | sed -u 's/^/Job 1: /' 
Job 1: Thu Jul 7 18:54:04 PDT 2016 
$ date erroneous 2>&1 | sed -u 's/^/Job 1: /' 
Job 1: date: illegal time format 

-u標誌使輸出更具響應(它將關閉緩衝)。在某些系統(如OS X)上,-l標誌可以代替。

如果要將標準輸出與標準錯誤分開,事情會變得更加複雜。

這可能對你想要的東西來說太粗暴了,但我希望它有幫助。