поиск строки в файле как игнорирование строк, начинающихся с # - PullRequest
1 голос
/ 08 июня 2010

Я хочу найти строку, такую ​​как "qwertty =" в файле с "awk" или "grep", но я не хочу видеть строки с #. Пожалуйста, смотрите пример

grep -ni "qwertty"   /aaa/bbb
798:#  * qwertty - enable/disable 
1222:#qwertty=1
1223:qwertty=2  
1224:#qwertty=3

Я хочу найти строку 1223. Каким должен быть поисковый запрос для этой цели?

Ответы [ 4 ]

2 голосов
/ 08 июня 2010
grep -ni '^qwertty=' /aaa/bbb

Если вам нужна большая гибкость (например, в строке нет хэша, и, возможно, пробел перед ключевым словом, и, возможно, ключевое слово, встроенное в большее слово, и, возможно, пробел вокруг знака «=»), вам нужно более сложное выражение:

grep -ni '^[^#]*qwertty[^#]*=[^#]*$' /aaa/bbb
1 голос
/ 27 марта 2012

Если я правильно понимаю вопрос, я решу дилемму так:

grep -v '^#' | grep -ni "qwertty"

или еще лучше:

sed '/^#/d' | grep -ni "qwertty"
0 голосов
/ 09 июня 2010
grep -ni "qwertty"   /aaa/bbb|grep -v '^#'
0 голосов
/ 08 июня 2010

awk '/^#/ {next} /qwertty/' afile

...