要從命令的輸出建立變數,請使用動態輸出。動態輸出是從命令的輸出中抽取一個值或一組值的規則,例如用於稍後的連線。您可以使用下列方式為一個指令新增多個動態輸出:
- 精確匹配,基於要擷取值開始或結束處的特定文字
- 正規表達式 (regex),根據特定的模式或順序來匹配值
舉例來說,如果命令輸出一個文字檔,其中的值會用於稍後的命令,則透過File Utils connector'List File Content' 命令的動態輸出來擷取這些值。
注意: 動態輸出的最大字串匹配大小為 1024 個字元。如果匹配超出此長度,則不會返回任何內容。
測試動態輸出
為了確保動態輸出建立所需的結果,請在建立之前使用樣本值測試其條件。例如,您可以使用電話號碼資料測試動態輸出:
(381) 782-5259 (511) 545-6132 (220) 476-8339 (837) 516-4312
- 在鏈中,選擇要從中提取輸出的命令,然後單擊編輯 。
- 選擇動態輸出 ,然後按一下測試 。
- 在Value to test 中,輸入指示動態輸出所用命令輸出的範例內容。
- 輸入要用於動態輸出的 regex 或精確匹配條件。例如,從樣本電話號碼中擷取地區代碼:
- 如精確 匹配:
- 在開始 和結束 中,分別輸入開頭和結尾括號,
(和)。 - 要在提取的值中包含括號,請選擇包含開始 和包含結束 。
- 在開始 和結束 中,分別輸入開頭和結尾括號,
- 如正則表達式 (regex) 匹配:
- 在匹配类型 中,输入正则表达式
\(([0-9]*)\),它匹配括号之间的数字。 - 在匹配结果 中,输入
$0以显示整个匹配值(包括括号 ),或输入$1以显示仅匹配数字(不包括括号 )。
- 在匹配类型 中,输入正则表达式
- 如精確 匹配:
- 按一下提交 ,並驗證結果是否與所需輸出相符。
根據精確匹配建立動態輸出
- 在鏈中,選擇要從中提取輸出的命令,然後單擊編輯 。
- 選擇動態輸出 ,然後按一下新增動態輸出 。
- 輸入唯一的名稱,以協助識別動態輸出。
- 在原始輸出 中,選擇要從命令的哪一個輸出中抽取。
- 在匹配类型 中 ,选择精确。
- 輸入表示要擷取的字串開始或結束的文字,並選擇是否將配對的文字包含在擷取值中。
- 要僅匹配輸出中特定字串的文字,請輸入要檢查的行。
- 若要包含行的範圍,請使用破折號
-,例如1-10代表第 1 到 10 行。 - 要分隔行或範圍,請使用逗號
,, 例如1-10,13表示第 1 到 10 行和第 13 行。
- 若要包含行的範圍,請使用破折號
- 在輸出類型 ,選擇要抽取單一值或多個值。
註記: 輸出類型為 Multiple 時,會建立一個最多 1,000 個項目的 JSON 陣列,您可以將此陣列用於命令或命令群組迭代。
- 若要在匹配文字時考慮字元大小寫,請選擇大小寫敏感 。
- 若要修剪匹配文字的前端或尾端空白,請選擇修剪匹配 。
- 按一下「儲存」(Save)。
根據正則表達式建立動態輸出
- 在鏈中,選擇要從中提取輸出的命令,然後單擊編輯 。
- 選擇動態輸出 ,然後按一下新增動態輸出 。
- 輸入唯一的名稱,以協助識別動態輸出。
- 在原始輸出 中,選擇要從命令的哪一個輸出中抽取。
- 在匹配类型 中 ,选择正则表达式 (regex)。
- 在匹配文本 中,输入用于匹配要提取的值的 regex 语法。
- 在匹配结果 中,输入如何显示匹配值的语法。例如:
- 對於整個匹配值,輸入
$0。 - 對於括號內的匹配值,請輸入
$1。
- 對於整個匹配值,輸入
- 要僅匹配輸出中特定字串的文字,請輸入要檢查的行。
- 若要包含行的範圍,請使用破折號
-,例如1-10代表第 1 到 10 行。 - 若要分隔行或範圍,請使用逗號
,, 例如1-10, 13代表第 1 到 10 行和 第 13 行。
- 若要包含行的範圍,請使用破折號
- 在輸出類型 ,選擇要抽取單一值或多個值。
註記: 輸出類型為 Multiple 時,會建立一個最多 1,000 個項目的 JSON 陣列,您可以將此陣列與指令或指令群迭代一起使用。
- 按一下「儲存」(Save)。
刪除動態輸出
要從命令中移除動態輸出:
- 在鏈中,選擇要從中提取輸出的命令,單擊編輯 ,並選擇動態輸出 。
- 對於要移除的動態輸出,請按一下Delete 。