Часто внутри конфигурационных файлов я оставляю для себя небольшие заметки в виде комментариев. Это позволяет быстро вспомнить важные моменты и значительно помогает в процессе настройки. Со временем количество комментариев может настолько много, что они напротив затрудняют чтение файла. Кроме того, бывают ситуации когда необходимо исключить из файлов комментарии, которые не должны увидеть посторонние.
Чтобы избавить себя от рутины, я предпочитаю через команду grep
исключить из файла сразу все имеющиеся в нем комментарии. Чтобы с помощью grep
исключить только строки по заданному условию, необходимо выполнить команду с опцией -v
в качестве параметра.
Команда ниже выведет на экран из содержимого файла example.conf
только активные настройки, удалив при этом все имеющиеся в нем комментарии и пустые строки.
grep -v '^#|^$' example.conf
В результате выполнения команды, будут исключены строки начинающиеся с символа решетки ^#
, а фильтр ^$
удалит из файла пустые строки.
Для удобства можно перенаправить вывод в текстовый файл:
grep -v '^#|^$' example.conf > new.conf
Чтобы с помощью grep
исключить комментарии из множества файлов, можно воспользоваться скриптом ниже:
#!/bin/sh files="/home/me/data/*.txt" for i in $files do grep -v '^#|^$' $i > $i.out mv $i.out $i done