1:FAILED + *1 0 (8328832,AR,UNDECLARED)
这就是我的期望:8328832,AR,UNDECLARED
我试图找到一个通用的正则表达式,允许在两个括号之间取出任何内容。
我的尝试是。
grep -o '\[(.*?)\]' test.txt > output.txt
但它无法匹配任何东西=(
由于
1 个答案:
答案 0 :(得分:23)
仍在使用grep和regex
grep -oP '\(\K[^\)]+' file
\K
表示使用环顾正则表达式高级功能。更准确地说,这是一个积极的后视断言,你也可以这样做:
grep -oP '(?<=\()[^\)]+' file
如果您缺少-P
选项,则可以使用perl执行此操作:
perl -lne '/\(\K[^\)]+/ and print $&' file
使用awk
的另一种更简单的方法
awk -F'[()]' '{print $2}' file