Ajude a dissecar um comando bash usado com LinkerD

Ajude a dissecar um comando bash usado com LinkerD

Atualmente estou escrevendo um script python em uma VM centos 7 que precisa executar alguns comandos shell ao longo do caminho. Encontrei uma biblioteca que faz o trabalho, mas estou recebendo um erro em uma delas. Recebi esses comandos de um arquivo de texto, então não sei o que eles fazem. Eu entendo os simples, mas estes estão acima do meu nível. Como apenas 2 linhas apresentam erro, sei que não é o script em si, mas sim como eu o uso. ./linkerdélinkerdarquivo binário enquanto linkerd_images.txt possui uma lista de imagens:

./linkerd install --ha --ignore-cluster | grep image: | grep linkerd | sed -e 's/^ .*images: //' | sort | uniq >> linkerd_images.txt
./linkerd viz install --ha --skip-checks | grep images: | sed -e 's/^ .*images: //' | sort | uniq >> linkerd_images.txt

Eu percebo que, como eles usam o binário do linkerd, eles podem ser exclusivos do aplicativo. Se for esse o caso, terei que descobrir onde posso encontrar a documentação, já que não consegui encontrá-la no repositório deles (por isso vim aqui primeiro)

Editar: aqui está o erro que recebi no script:

UnicodeDecodeError: 'utf-8' codec: can't decode byte 0xe2 in position 49: Invalid continuation byte

Se eu executar o primeiro comando sozinho no terminal, recebo:

sed: -e expression #1, char 1: unknown command: '[Question Mark Symbol]'

Não estou muito preocupado com o erro em si, pois não espero uma resposta direta ao meu código python. Eu gostaria apenas de entender o que os próprios comandos fazem com todos os personagens sofisticados.

Me pediram para adicionar o código python. eu asynciouseifunção de execuçãopara executar a maioria dos comandos shell. Portanto, o código python em si é simplesmente:

asyncio.run(run(
     """./linkerd install --ha --ignore-cluster | grep image: | grep linkerd | sed -e 's/^ .*images: //' | sort | uniq >> linkerd_images.txt"""))

Também verifiquei o arquivo binário linkerd e ele se parece com um arquivo json.

Responder1

Aqui está a resposta que encontrei

O problema não era o acento circunflexo, mas sim o apóstrofo. A pessoa que me deu o comando digitou-o com um teclado francês. Como está no meu PC de trabalho, digitei aqui olhando para a outra tela, então redigitei um apóstrofo adequado sem pensar nisso. Agora que examinei os erros do sed e o que eles significam, faz muito mais sentido. sed -e expression #1é a primeira palavra depois -e(neste caso 's/^). O caractere nº 1 seria 'onde eu deveria ter olhado inicialmente se soubesse disso de antemão.

informação relacionada