LinuxForum.Fans
Тема

Комнда grep

Автор: leonardo 10 сообщений 5676 просмотров 🔒 закрыта
#104533

не помню команду, напомните smile хочу просмотреть без коментов свой созданый коннф в:
cat /usr/local/etc/squid/squid.conf | grep -v # делаю так но между строк много интервала помню была другая команда для того чтобы увидеть все без коментов

#104537

А так?

text

egrep -v '^#|^$' /usr/local/etc/squid/squid.conf
#104544

а так хорошо друг спасибо smile

#104551

[console]sed '/^\s*#/d' файл[/console]

#104552

drBatty, а пустые строки?

#104555

ка вариант :

grep -v "^#" <ваш файл> | sed -e '/^$/d'

#104557
i2ks написал:
grep -v "^#" <ваш файл> | sed -e '/^$/d'

А смысл? wink Я и на awk могу комментарии «порезать».

#104567

это дополнение к

Lupo Alberto написал:
А так?

а придумать можно все что угодно, лишь бы было бы желание wink

#104584
Lupo Alberto написал:
а пустые строки?

[console]sed '/^\s*#/d;/^\s*$/d' файл
[/console]

PS: вообще-то, строка с комментарием может начинаться (и часто начинается) с пробелов. Потому все ваши grep'ы работают не совсем правильно.

Однако, если полностью распарсить, то это будет слишком сложно:

Показать
text
#!/bin/sed -rf

# сохранение строки h

:begin_loop # p # удаление обычного начала s/^[^'"#\]+(.*)/\1/ t begin_loop # удаление экранированных символов s/^\\.// t begin_loop # удаление закавыченного блока s/^'[^']*'// t begin_loop s/^'.*// T lq # незакрытый блок кавычек, необходима подгрузка ${ x b end } n H s/^/'/ t begin_loop :lq # удаление экранированной кавычки внутри закавыченного блока s/^"[^"]*\\"/"/ t begin_loop # удаление закавыченного блока s/^"[^"]*"// t begin_loop s/^".*// T lq2 ${ x b end } n H s/^/"/ t begin_loop :lq2 /^\#/{ # теперь строка начинается с # H x s/^(.*)(\#[^\n]*)\n\2$/\1/ b end } # а коммента и нету x

:end # s/.*/\x1b[32m'&'\x1b[0m/

(С) моё

#104612

drBatty, это ТЗ? Давайте обсудим условия. wink
P.S.

text

awk '{if($1 !~ /^$/ && $1 !~ /#/) print }' /usr/local/etc/squid/squid.conf
Войдите или зарегистрируйтесь, чтобы ответить.