substitua a peça (dentro das aspas simples)
$(ls /dev/tty.usbmodem*)
por
'"$(ls /dev/tty.usbmodem*)"'
portanto, saindo da parte com aspas simples e inserindo uma aspa dupla para o comando e, em seguida, inserindo novamente aspas simples.
Eu tenho um arquivo de configuração no formato JSON com o seguinte bloco
"device" :
{
"name" : "MyPi",
"type" : "ws2801",
"output" : "/dev/spidev0.0",
"rate" : 250000,
"colorOrder" : "rgb"
},
Eu uso sed (versão não GNU no Mac OS X) para substituir os valores de string pela expressão sed assim:
sed -i '' '1h;1!H;$!d;x;s#\("device" :[^}]*"colorOrder"[ ]*: \)"[^"]*"#"grb"#' hyperion.config.json
Agora quero substituir "output": linha com o resultado de ls /dev/tty.usbmodem*
com este comando:
%código%
No entanto sed -i '' -e '1h;1!H;$!d;x;s#\("device" :[^}]*"output"[ ]*: \)"[^"]*"#"$(ls /dev/tty.usbmodem*)"#' hyperion.config.json
não é executado e eu recebo ls
Eu tentei substituir aspas simples por aspas duplas com escape dentro da expressão, isso não funcionou.
Então, como posso substituir o valor da saída (dentro do bloco "device") pela saída do comando "output" : "$(ls /dev/tty.usbmodem*)",
?
substitua a peça (dentro das aspas simples)
$(ls /dev/tty.usbmodem*)
por
'"$(ls /dev/tty.usbmodem*)"'
portanto, saindo da parte com aspas simples e inserindo uma aspa dupla para o comando e, em seguida, inserindo novamente aspas simples.
Adicione cotações como no exemplo abaixo.
Substituir:
'xxx"$(ls /dev/tty.usbmodem*)"xxx'
por:
'xxx"'"$(ls /dev/tty.usbmodem*)"'"xxx'