Linux Mint 19.3 x64 Cinnamon.
Здравствуйте. Есть файл в котором при каждом запуске нужно менять две строки. Создал скрипт, но он не работает. Подскажите, как правильно сделать замену строк?
В файле config.json есть две строки:
Нужно сделать скрипт, меняющий эти строки на :
Создал скрипт:
Код: Выделить всё
#!/bin/bash
sed 's/"focused": true,/"focused": false,/2' config.json
sed 's/"visible": true,/"visible": false,/2g' config.json
exit 0
Но он не меняет строки. Что я делаю не так? Помогите пожалуйста.
Решение
rogoznik » 13 апр 2022, 12:11
ogankvik, собственно ты был близок, но то ли читал невнимательно, то ли статья такая попалась.
Должно быть так
Код: Выделить всё
#!/bin/bash
sed -i 's/"focused": true,/"focused": false,/' config.json
sed -i 's/"visible": true,/"visible": false,/' config.json
exit 0
Флаг
g
есть смысл использовать, если таких строк несколько и надо заменить в каждой, т.е. глобально(во всем файле). Без этого флага будет заменено только в первой попавшейся строке
Ключ
-i
говорит
sed
что надо изменения писать в файл, а не в
stdout
Перейти к ответу ➙