作爲較大程序的一部分時,我進行呼叫到grep,並輸出其結果到標準輸出:保留顏色代碼EXEC-ING
// execute grep command
cmd := exec.Command(GREP_BIN_PATH, argArray...)
stdout, err := cmd.StdoutPipe()
if err != nil {
log.Fatal(err)
}
stderr, err := cmd.StderrPipe()
if err != nil {
log.Fatal(err)
}
err = cmd.Start()
if err != nil {
log.Fatal(err)
}
go io.Copy(os.Stdout, stdout)
go io.Copy(os.Stderr, stderr)
cmd.Wait()
如果我作出相同的呼叫直接用grep從終端,grep輸出多色文本(例如,在其輸出中以紅色突出顯示任何匹配)。做一點研究,似乎有grep /其他程序用來改變顏色突出顯示的特殊ansi color codes。
當我執行命令時,這些顏色會去哪裏?有沒有什麼辦法可以從內部執行來保存ansi顏色代碼,並將輸出從grep複製到標準輸出(類似於後here,但是去)?
(I也知道,我可以手動重新插入顏色代碼,但是這似乎很痛苦,我寧願只是管道grep的原始色彩。)
請讓我知道如果事情在這個問題不清楚/需要澄清。謝謝!
'$ man grep'並搜索顏色。 – Volker 2015-03-31 18:00:06