Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Как добавить символ в начало определённых строк?

#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

Комментариев нет:

Отправить комментарий