0

我正在将 API 调用的输出重定向到文件

但是我总是得到围绕我需要的值的以下字符

domainid='^[[39;49;00m^[[33;01m75307d12-e3f4-4a96-ac23-e2a9439f8299^[[39;49;00m'

期望的输出

domainid='75307d12-e3f4-4a96-ac23-e2a9439f8299'

我真的不知道如何清理输出并使其看起来像上面那样。

任何建议将不胜感激。

谢谢

4

2 回答 2

2

这些是 ANSI 控制字符或转义序列,它们通常用于在输出中添加颜色、下划线等。

首要任务是检查您的 API 命令行工具是否支持无颜色模式。这将在源头上解决您的问题。

除此之外,试试这个 Server Fault answer,它有一个命令可以使用sed.

于 2013-07-28T07:50:07.703 回答
1

您可以通过仅用您想要保留的子匹配替换该行来删除不需要的字符:

... | sed -r "s/(domainid=).*([0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}).*/\1'\2'/i"
于 2013-07-28T09:51:30.917 回答