Как извлечь содержимое между двумя скобками с помощью grep?

   1:FAILED      +  *1      0     (8328832,AR,UNDECLARED)

Это то, что я ожидаю: 8328832, AR, UNDECARARED

Я пытаюсь найти общее выражение регулярного выражения, которое позволяет взять любое содержимое между двумя скобками. Моя попытка.

  grep -o '\[(.*?)\]' test.txt > output.txt

Но он не может соответствовать ничего = (

Спасибо

Ответы

Ответ 1

Использование и

grep -oP '\(\K[^\)]+' file

\K означает, что использование выглядит вокруг расширенной функции regex. Точнее, это положительное утверждение, вы можете сделать это так:

grep -oP '(?<=\()[^\)]+' file

если вам не нужен параметр -P, вы можете сделать это с помощью :

perl -lne '/\(\K[^\)]+/ and print $&' file

Другой более простой подход с использованием

awk -F'[()]' '{print $2}' file