Opera в Arch не может воспроизводить некоторые видео

напишите свой первый скрипт:

awk 'IGNORECASE = 1;/bingo/ && /number/;'
  1. IGNORECASE не отвечает -только на то, что указано в комментариях, и
  2. ваш код awk эквивалентен:

    awk '(IGNORECASE = 1){print}; (/bingo/ && /number/){print}'
    

поэтому он будет выполнять -нечувствительное к регистру соответствие в GNU awk, но не в других awks, и всегда будет печатать текущую строку (, поскольку присваивание IGNORECASE=1оценивается как 1, что является истинным условием. )и тогда любая строка, содержащая и бинго, и число, будет напечатана во второй раз.

напишите свой второй скрипт:

awk 'tolower($0) ~ /(?=.*bingo)(?=.*number)/'

Этот материал ?=относится к поиску по PCRE -awk поддерживает ERE, а не PCRE, так что мне придется подумать о том, что это на самом деле означает в ERE, но что бы это ни было, это не то, что вы хотели. иметь в виду.

Что касается вашего утверждения, что:

It seems that awk may be performing the match against the lines in each file in the output of ls -R

Не знаю, почему вы так думаете, но нет, это не так.

Вот что, я думаю, вам нужно в GNU awk:

awk 'BEGIN{IGNORECASE=1}; /bingo/ && /number/'

Или:

awk -v IGNORECASE=1 '/bingo/ && /number/'

и в любом awk:

awk '{lc=tolower($0)}; (lc ~ /bingo/) && (lc ~ /number/)'
0
09.09.2021, 18:05
0 ответов

Теги

Похожие вопросы