-2

У меня есть файл

1.txt

ejryheiur

rewurie

(

ejwhrejkrh

rewrhwe

rewkhrwe

rewhkr

)

dfhgsdfh

rqwergjweg

jhwgrh

(

rehgwrwhe


rhwejkr

)

С этим сценарием Nawk

   nawk '
       BEGIN { 
       count1=1  ;
       count2=0 ;
       }
       {
       if ((NR > 2) && ( $0 ~/(/) ) 
       {
            count1++ ;
            if ((NR > 2) && ($0 ~/)/)) 
            {
                count2++ ; 
                if (count1 == count2) 
                {
                  print NR ; 
                  exit 
                }
            }
        }
        else 
        {
            if ((NR > 2) && ($0 ~ /)/)) 
            {
                count2++ ; 
                if (count1 == count2) 
                {
                    print NR;
                    exit
                }
            }
        }
       }
   ' 1.txt

Но я получаю эту ошибку:

nawk: недопустимый первичный элемент в регулярном выражении (в строке источника номер 7 контекст

if ((NR > 2) && ($0 >>>  ~/(/ <<< ))

1 ответ1

1

Вы должны избежать круглой скобки в регулярном выражении.

Либо с обратной косой чертой:

if ((NR > 2) && ( $0 ~/\(/) )

Или с квадратными скобками:

if ((NR > 2) && ( $0 ~/[(]/) )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .