How to extract the content between two brackets by

2020-02-26 05:57发布

问题:

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

This is what I expect : 8328832,AR,UNDECLARED

I am trying to find a general regex expression that allows to take any content between two brackets out. My attempt is.

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

But it cannot match anything =(

Thanks

回答1:

Still using grep and regex

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

\K means that use look around regex advanced feature. More precisely, it's a positive look-behind assertion, you can do it like this too :

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

if you lack the -P option, you can do this with perl :

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

Another simpler approach using awk

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


标签: regex shell unix