JQ - Как определить фильтр для удаления скобок, кавычек и запятых из выходного массива - PullRequest
0 голосов
/ 26 октября 2019

Мне нужно преобразовать выходной массив в строки без скобок, кавычек и запятых, чтобы его можно было использовать для создания клонов git.

Это мой оригинальный запрос

curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r "[.values[] | ((.links.clone[] | select(.name==\"http\") | .href)  + \" \" +  .name)]"  

который возвращает выходные данные в формате

[
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository1",
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository2"
]

Я хочу использовать выходные данные в качестве входных данных для другой команды, как показано ниже:

 curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r "[.values[] | ((.links.clone[] | select(.name==\"http\") | .href)  + \" \" +  .name)]"   | ^
 H:\Utilities\Git\usr\bin\xargs.exe -n 2 git clone -b release-dev

Чтобы иметь возможность использовать эту команду, выходные данныеКоманда jq должна быть такой:

http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository1
http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository2

Первая часть является частью этой ссылки

Какие изменения мне нужно внести в фильтр JQ, чтобы яможет выполнить это? На самом деле мне нужно клонировать более 40 репозиториев из проекта BitBucket, и я хотел бы создать простой скрипт, в котором мне не нужно сначала получать список.

1 Ответ

0 голосов
/ 26 октября 2019

Вы можете просто прикрепить следующий фильтр jq к фильтру, который создает массив из двух строк:

.[]

Или, что более экономно, просто уберите внешние квадратные скобки из запроса jq.

Дело в том, что опция -r удаляет только двойные кавычки на выходных данных, которые являются строками JSON (не строками в составных объектах).

...