我試圖讓正則運算式有權回傳一個或另一個而不是兩個:當我運行例如以下內容時:
aws secretsmanager list-secrets | jq -r ".SecretList[] | select(.Name|match(\"example-*\")) | .Name "
它回傳
example-secret_key
也
examplecompany-secret_key
如何修改命令以回傳一個而不是另一個?謝謝
uj5u.com熱心網友回復:
example-*匹配包含example后跟零個或多個的字串-。
^example-匹配以 . 開頭的字串example-。
jq -r '.SecretList[].Name | select( test( "^example-" ) )'
uj5u.com熱心網友回復:
正則運算式不是 shell glob/通配符。*在正則運算式中并不意味著“任何東西”,而是“之前出現的任何東西都重復了 0 次或多次”。.是一個任意字符。.*是 0 個或多個任意字符。
如果你想匹配“example-”并且不關心后面的內容,只需使用 regex example-。如果你想匹配“example-”,那么匹配任何東西或什么都不匹配,然后是“_key”,使用正則運算式example-.*_key。
jq -r '.SecretList[].Name | select(test("example-"))'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534040.html
上一篇:正則運算式javascript-捕獲srcURL,僅當它是影像時?
下一篇:使用正則運算式從字串中提取鍵值對
