pssh com sed e caracteres especiais

0

Gostaria de executar este sed:

sed "s?\(Defaults.*\)?:/etc/bla/foo/?" filename

Mas ocorreu uma falha, saiu com o código de erro 1 ao executá-lo da seguinte forma com pssh:

pssh -h /root/listofservers -l root -A "sed "s?\(Defaults.*\)?:/etc/bla/foo/?" filename"
    
por johnsnow 22.05.2018 / 13:38

1 resposta

0

pssh tem a seguinte sinopse de uso:

pssh [options] command ...

Isto é, não cite o comando que você quer executar nos hosts remotos (ou ele tratará todo o comando entre aspas como o nome no comando). Além disso, strings de aspas simples são estáticas, como a expressão sed .

Sugestão:

pssh -h /root/listofservers -l root -A sed 's#\(Defaults.*\)#:/etc/bla/foo/#' filename

Eu também alterei ? para # , pois ? é um caractere de expressão regular. Não fará diferença aqui, mas me confundiu rapidamente quando tentei analisar a expressão.

    
por 22.05.2018 / 13:41

Tags