У меня есть файл конфигурации в формате JSON со следующим блоком
"device" :
{
"name" : "MyPi",
"type" : "ws2801",
"output" : "/dev/spidev0.0",
"rate" : 250000,
"colorOrder" : "rgb"
},
Я использую sed (не версия GNU для OS X), чтобы заменить строковые значения выражением sed, например: sed -i '' '1h;1!H;$!d;x;s#\("device" :[^}]*"colorOrder"[ ]*: \)"[^"]*"#\1"grb"#' hyperion.config.json
Теперь я хочу заменить строку "output": на результат ls /dev/tty.usbmodem*
этой командой: sed -i '' -e '1h;1!H;$!d;x;s#\("device" :[^}]*"output"[ ]*: \)"[^"]*"#\1"$(ls /dev/tty.usbmodem*)"#' hyperion.config.json
Однако ls
не выполняется, и я получаю "output" : "$(ls /dev/tty.usbmodem*)",
я попытался заменить одинарные кавычки на двойные кавычки с экранированием внутри выражения, но этого не произошло Работа.
Так как же заменить значение вывода (внутри блока "устройство") выводом команды ls
?