sed для комфортного чтения конфиг-файлов

Если grep’ом сейчас никого не удивишь, то sed’ом и awk наоборот мало кто пользуется. Наверное потому что это целые языки программирования (по крайней мере так утверждает вики).

Итак, проблема: конфиги всяких демонов (squid, sshd, etc) обычно получаются из дефолтных модификацией некоторых полей. В дефолтных конфигах обычно миллион всяких флагов + комментарии к каждому из них. Вот например конфиг squid’a:

$ wc -l /opt/local/etc/squid/squid.conf
4948 /opt/local/etc/squid/squid.conf

4948 строк в которых обычно нужно срочно понять почему не работает.

Этот “хак” для sed’a я встретил где-то в коментах на SO: sed '/ *#/d; /^ *$/d'. Он убирает из вывода все коменты и пустые строки.

$ cat /opt/local/etc/squid/squid.conf | sed '/ *#/d; /^ *$/d' | wc -l
28

28 значимых строк из 4948. Можно спокойно распарсить глазами.

comments powered by Disqus