要从命令的输出创建变量,请使用动态输出。动态输出是指从命令的输出中提取一个值或值列表的规则,例如供链中后续使用。您可以使用以下方法向命令添加多个动态输出:
- 根据值开头或结尾的特定文本进行精确匹配以提取数据
- 正则表达式(regex),用于根据特定模式或序列匹配值。
例如,如果一个命令输出一个文本文件,其中包含链中后续命令使用的值,则通过 文件实用工具连接器的“列出文件内容”命令的动态输出提取这些值。
注:动态输出的最大字符串匹配长度为 1024 个字符。如果匹配项超过此长度,则不返回任何内容。
测试动态输出
为确保动态输出能够产生预期结果,请在创建动态输出之前使用样本值测试其标准。例如,您可以使用电话号码数据测试动态输出:
(381) 782-5259 (511) 545-6132 (220) 476-8339 (837) 516-4312
- 在链中,选择要从中提取输出的命令,然后单击 编辑。
- 选择 动态输出,然后单击 测试。
- 在 待测试值中,输入指示与动态输出一起使用的命令输出的示例内容。
- 输入要用于动态输出的正则表达式或精确匹配条件。例如,要从示例电话号码中提取区号:
- 作为精确 匹配:
- 在 开始 和 结束中,分别输入左括号和右括号
(和)。 - 要将括号包含在提取的值中,请选择 包含开始 和 包含结束。
- 在 开始 和 结束中,分别输入左括号和右括号
- 作为 正则表达式 (regex) 匹配:
- 在 匹配类型中,输入正则表达式
\(([0-9]*)\),该表达式匹配括号之间的数字。 - 在 匹配结果中,输入
$0以显示整个匹配值 包括括号,或输入$1以仅显示匹配的数字 不包括 括号。
- 在 匹配类型中,输入正则表达式
- 作为精确 匹配:
- 点击 提交,并验证结果是否与预期输出相符。
根据精确匹配创建动态输出
- 在链中,选择要从中提取输出的命令,然后单击 编辑。
- 选择 动态输出,然后单击 添加动态输出。
- 输入一个唯一的名称,以便识别动态输出。
- 在 原始输出中,选择要从中提取命令输出的哪个输出。
- 在 匹配类型中,选择“精确”。
- 输入指示要提取的字符串的开始或结束的文本,并选择是否将匹配的文本包含在提取的值中。
- 要仅匹配输出中特定字符串的文本,请输入要检查的行。
- 要包含一系列行,请使用破折号
-,例如1-10表示第 1 行到第 10 行。 - 要分隔行或范围,请使用逗号
,,例如1-10,13表示第 1 行到第 10 行和第 13 行。
- 要包含一系列行,请使用破折号
- 在 输出类型中,选择是提取单个值还是多个值。
注:输出类型为 Multiple 会创建一个最多包含 1000 个元素的 JSON 数组,您可以将其用于命令或命令组迭代。
- 要在匹配文本时考虑字符大小写,请选择 区分大小写。
- 要从匹配的文本中删除前导或尾随空格,请选择 修剪匹配项。
- 点击 保存。
基于正则表达式创建动态输出
- 在链中,选择要从中提取输出的命令,然后单击 编辑。
- 选择 动态输出,然后单击 添加动态输出。
- 输入一个唯一的名称,以便识别动态输出。
- 在 原始输出中,选择要从中提取命令输出的哪个输出。
- 在 匹配类型中,选择正则表达式 (regex)。
- 在 匹配文本中,输入用于匹配要提取的值的正则表达式语法。
- 在 匹配结果中,输入显示匹配值的语法。例如:
- 对于匹配的整个值,请输入
$0。 - 对于括号内的匹配值,请输入
$1。
- 对于匹配的整个值,请输入
- 要仅匹配输出中特定字符串的文本,请输入要检查的行。
- 要包含一系列行,请使用破折号
-,例如1-10表示第 1 行到第 10 行。 - 要分隔行或范围,请使用逗号
,,例如1-10, 13表示第 1 行到第 10 行 和 表示第 13 行。
- 要包含一系列行,请使用破折号
- 在 输出类型中,选择是提取单个值还是多个值。
注:输出类型为 Multiple 会创建一个最多包含 1000 个元素的 JSON 数组,您可以将其用于命令或命令组迭代。
- 点击 保存。
删除动态输出
要从命令中移除动态输出:
- 在链中,选择要从中提取输出的命令,单击 编辑,然后选择 动态输出。
- 要删除动态输出,请单击 删除 。