我正在尋找有關如何使用 GitHub CLI 解決某個腳本問題的建議。假設我使用該gh search prs "SPARK-" --match body命令獲取所有 prs 的串列,其正文包含 SPARK- 短語。現在,我想遍歷該 prs 串列,并輸出該 pr 的 url 及其 SPARK 編號(在 pr 正文中的某處,有文字說“SPARK-”,后跟一個唯一的 5 位數字)。關于如何解決這個問題的任何想法?我很難弄清楚如何使用我的 gh cli 輸出構建這個回圈(或者如果它甚至可能?),讓我們在一些 bash 腳本中說,并弄清楚如何專門隔離 SPARK 編號。
uj5u.com熱心網友回復:
您可以在一次gh呼叫中完成所有操作:
gh search prs "SPARK-" --match body --json url,body --jq '
"SPARK-([[:digit:]] )" as $re
| map(select(.body | test($re)))
| .[].body |= match($re).captures[0].string
| map([.url, .body])[]
| @csv'
該--json引數選擇 URL 和描述,并將--jqJSON 按摩到逗號分隔的串列中(請參閱jq playground):
"https://github.com/just4jc/CSE6242-Data-and-Visual-Analytics/pull/32","1298180"
"https://github.com/h950059h/kafka-examples/pull/33","1298180"
"https://github.com/terrorizer1980/zeppelin/pull/75","2420837"
"https://github.com/muyenzo/reference-architectures/pull/10","574943"
"https://github.com/microsoft/az-python/pull/461","35714"
"https://github.com/radanalyticsio/streaming-amqp/pull/38","1298181"
"https://github.com/orysmudi/tensorflow/pull/78","573164"
"https://github.com/apache/iceberg/pull/4479","30669"
"https://github.com/alonsoir/strata-2016/pull/17","1298180"
jq 命令首先定義一個正則運算式SPARK-([[:digit:]] ),然后用它洗掉所有SPARK找到的 PR,但后面不跟數字;然后它用正則運算式的第一個匹配的捕獲組替換正文,只回傳數字。
最后,它重新排列成陣列并轉換為 CSV。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/460271.html
標籤:重击 github grep github-cli
