Создание псевдонима с помощью команды grep, содержащей одинарные кавычки - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь создать псевдоним следующего:

jq | grep -Eo '(http|https)://[^"]+'

Однако, когда я использую:

alias xxx="jq | grep -Eo '(http|https)://[^"]+'"

Я получаю ошибку: S

Есть ли способ, которым я могу создать псевдоним с этим?

Любая помощь будет принята с благодарностью - спасибо за ваше время :)

Ответы [ 2 ]

1 голос
/ 08 октября 2019

В большинстве случаев, если вы собираетесь использовать jq вообще, вероятно, было бы лучше использовать jq также для сопоставления строк. Предполагая, что вас не интересуют имена ключей, которые выглядят как URL, вы можете использовать что-то вроде следующего:

function xxx {
 jq -r '.. | strings | capture("(?<x>(http|https)://[^\"]+)") | .x'
}
1 голос
/ 07 октября 2019

Тело псевдонима имеет кавычку (в [^ "], которая должна быть экранирована, в противном случае она завершит кавычки, открывающие тело.

alias xxx="jq | grep -Eo '(http|https)://[^\"]+'"
...