作為更大程序的一部分,我正在調(diào)用 grep,并將其結(jié)果輸出到標(biāo)準(zhǔn)輸出:// execute grep commandcmd := 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 進行相同的調(diào)用,grep 將輸出多色文本(例如,在其輸出中以紅色突出顯示任何匹配項)。做一些研究,似乎grep/其他程序使用特殊的ansi顏色代碼來更改顏色突出顯示。當(dāng)我從 go 執(zhí)行命令時,這些顏色去哪里了?有什么方法可以讓我在 go 中執(zhí)行以保留 ansi 顏色代碼,并將輸出從 grep 復(fù)制到標(biāo)準(zhǔn)輸出(類似于此處的帖子,但對于 go)?(我也知道我可以手動重新插入顏色代碼。但這看起來很痛苦,我寧愿只是管道 grep 的原始顏色。)如果問題中的某些內(nèi)容不清楚/需要澄清,請告訴我。謝謝!
執(zhí)行時保留顏色代碼
拉風(fēng)的咖菲貓
2021-09-27 16:01:34