grep или sed или awk + соответствует WORD - PullRequest
1 голос
/ 06 сентября 2010

Я делаю следующее, чтобы получить все WORD в файле, но не в строках, начинающихся с "//"

  grep -v "//"  file | grep WORD

. Могу ли я получить другое элегантное предложение найти все WORD в файле, кроме строк?начинающиеся с //

Примечание: "//" необязательно существует в первой строке, это может быть несколько пробелов после первой строки, а затем появляется, например, //

больше файлов

 // WORD

 AA WORD

         // ss WORD

Лидия

Ответы [ 2 ]

1 голос
/ 06 сентября 2010
grep -v "//"  file | grep WORD

Это также исключит любые строки с "//" после WORD, например:

WORD // Эта строка здесь

Лучший подходс GNU Grep будет выглядеть так:

 grep -v '^[[:space:]]*//' file | grep 'WORD'

... который сначала отфильтрует все строки, начинающиеся с пробелов от нуля или более и строки комментария.

Попытка поместить эти два условияв одном регулярном выражении, вероятно, не более элегантно.

0 голосов
/ 06 сентября 2010
awk '!/^[ \t]*\/\// && /WORD/{m=gsub("WORD","");total+=m}END{print total}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...