Passar a saída sed para abrir o comando

1

Estou tentando configurar uma função que me permita abrir documentos do Google off-line. A questão é que eles só funcionam no Finder se o Chrome for o navegador padrão, pois o aplicativo do Google Drive abrirá o arquivo e, em seguida, o URL desejado será transmitido para o navegador padrão. Como os documentos off-line não podem ser abertos no Safari, preciso alterar meu navegador padrão (não, obrigado!) Ou copiar e passar o URL fornecido para o Safari no Chrome, que pode abrir o arquivo corretamente.

Ao executar um gato de um documento / uma planilha do Google off-line, uma saída como a seguinte é retornada,

{"url": "https://docs.google.com/open?id=31234123fdasdfsg412341", "doc_id":"31234123fdasdfsg412341", "email": "[email protected]", "resource_id": "document:31234123fdasdfsg412341"}

Consegui usar o sed para extrair a parte https deste,

sed 's/.*\(https[^"]*\)".*//' myfile.gsheet

Um exemplo disso é

echo '{"url": "https://docs.google.com/open?id=31234123fdasdfsg412341", "doc_id": "31234123fdasdfsg412341", "email": "[email protected]", "resource_id": "document:31234123fdasdfsg412341"}' | sed 's/.*\(https[^"]*\)".*//'

No entanto, para abrir isso no Chrome e realmente exibir o arquivo off-line, preciso passar para

open -a 'Google Chrome' <sed_output>

Finalmente, a parte mais complicada (!), eu preciso fazer com que todo este processo seja uma função para que eu possa definir um alias e digitar,

chromeopen myfile.gsheet

e faça com que ele extraia o URL desse arquivo e passe-o para abrir.

Obrigado!

UPDATE

Usando a sugestão do mmusante, criei uma função de alias para executar essa ação,

chromeopenfunc() {
    open -a 'Google Chrome' "$(sed 's/.*\(https[^"]*\)".*//' $1)"
}
alias chrome=chromeopenfunc
    
por Richard Haydock 09.11.2016 / 23:34

1 resposta

4

Você pode colocar a saída sed diretamente na linha de comando usando o operador $ (). por exemplo. open -a 'Google Chrome' "$(sed 'blah blah blah')"

    
por 09.11.2016 / 23:56

Tags