Как использовать zgrep для отображения всех слов размера топора из списка слов? - PullRequest
1 голос
/ 17 октября 2019

Я хочу отобразить все слова из моего списка слов, которые начинаются с w и имеют длину 9 букв. Вчера я узнал немного больше о том, как использовать zgrep, поэтому пришел с:

zgrep '\(^w\)\(^.........$\)' a.gz

Но это не работает, и я думаю, что это потому, что я не знаю, каксделать AND между двумя условиями. Я обнаружил, что это должно быть (?=expr)(?=expr), но я не могу понять, как построить свою команду, тогда

Так, как я могу построить свою команду, используя (?=expr)?

, например, еслиУ меня есть такой список слов:

  • Вашингтон
  • Колбаса
  • Walalalalalaaaa -> не должно совпадать
  • Wwwwwwwww -> должно совпадать

1 Ответ

1 голос
/ 17 октября 2019

Вы можете использовать

zgrep '^w[[:alpha:]]\{8\}$' a.gz

Шаблон POSIX BRE будет соответствовать строке, которая

  • ^w - начинается с w
  • [[:alpha:]]\{8\} - затем имеет восемь букв
  • $ - с последующим маркером конца строки.

Также см. 9.3 Basic RegularВыражения .

...