Go 怎么移除命令日志里的控制字符, 不依赖 shell 命令

2023-10-30 10:54:44 +08:00
 Nazz
Script started on 2020 年 11 月 17 日 星期二 10 时 20 分 31 秒
sh: 0: getcwd() failed: No such file or directory
$ bash

 ]0;myuser@vir-secu3: /var/snap/amazon-ssm-agent/3315  [01;32mmyuser@vir-secu3 [00m: [01;34m/var/snap/amazon-ssm-agent/3315 [00m$ cd /data/myuser/we -se cu-standby/

 ]0;myuser@vir-secu3: /data/myuser/secu-standby  [01;32mmyuser@vir-secu3 [00m: [01;34m/data/myuser/secu-standby [00m$ ./deploy.sh ./de   [K  [K  [K  [K  [K

deploy time: 2020-11-17_06-59-12
1321 次点击
所在节点    Go 编程语言
9 条回复
Jat001
2023-10-30 10:57:25 +08:00
这跟 go 没半毛钱关系啊,日志怎么收集的?不能用 stdout 和 stderr 吗?
Nazz
2023-10-30 11:04:23 +08:00
@Jat001 代理工具采集的. 正则替换就能解决吧
Fooooo0
2023-10-30 11:31:33 +08:00
上线的时候关掉打印颜色
jarome
2023-10-30 11:35:18 +08:00
使用正则啊:\x1B\\[[0-9;]*[A-Za-z]
wkzq
2023-10-30 11:55:11 +08:00
这些都是 log 的颜色, 你在初始化 log 的时候把颜色关掉就可以了
Nazz
2023-10-30 12:13:37 +08:00
@Fooooo0
@wkzq

最好还是我这边处理掉
Nazz
2023-10-30 12:16:43 +08:00
@jarome 这个正则只能去掉一部分,还有许多东西遗留(比如说 BEL),自己写怕漏掉什么😂
otakustay
2023-10-30 13:19:47 +08:00
tinytoadd
2023-10-30 18:55:41 +08:00
[\u001B\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))
@otakustay

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/986617

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX