#linux #регулярные_выражения #bash
Есть файл конфигурации, где есть определённый параметр.
Какими командами можно поставить и убрать в начале строки параметра знак # ?
Пример файла
# /bin/bash /usr/local/scripts/program1 &
/bin/bash /usr/local/scripts/program2 &
# /bin/bash /usr/local/scripts/program3 &
exit 0
Нужны две команды, одна убирает знак комментария у program3, другая добавляет знак
комментария обратно.
Параметр program3 может находиться в любой по счёту строке
И если строка уже комментирована, то команда комментирования должна проигнорировать
эту строку
Ответы
Ответ 1
поставить символ # в начало строки, содержащей текст: $ sed -i '/текст/s/^/#/' файл убрать символы # в начале строки, содержащей текст: $ sed -i '/текст/s/^#\+//' файл поставить символ # в начало строки, содержащей текст, и начинающейся не с символа #: $ sed -i '/^[^#].*текст/s/^/#/' файлОтвет 2
Закомментировать строку с указанным номером (в данном случае вторую) sed -i '2s/^/#/' ./file.txt Раскомментировать обратно sed -i '2s/^#//' ./file.txt
Комментариев нет:
Отправить комментарий