Я пытаюсь заменить определенную строку в файле с помощью команды sed
. Тем не менее, это не работает. Структура данных в моем файле:
"SomeServerName": {
"serverIP": "192.168.0.132",
"serverPort": "9999",
"active": false
}
Здесь я хочу изменить статус active
на true с false на основе IP, который является переменным входом, который я получаю с терминала.
Команда sed, которую я использовал:
sudo sed -i "s/$someIP/!b;n;n;c\ \ \ \ \ \ \ \ "active": true/" filename
Здесь, $someIP=192.168.0.132
. В sed, если я заменю $ someIP на '192.168.0.132', все будет работать нормально. Однако, если я передам переменную, она не будет работать.
РЕДАКТИРОВАТЬ : Ниже приведен весь мой сценарий для вышеуказанного sed:
#! /bin/sh
someIP=$(hostname -I)
sudo sed -i "s/$someIP/!b;n;n;c\ \ \ \ \ \ \ \ "active": true/" filename