我想检索括号之间的多个字符串。这是我现在使用的命令:
grep '\[*\]' src/config/mail.ini
它返回给我的输出如下:
[GLOBAL]
[MAIL_1]
如何才能一一得到结果?并且,在这种情况下,作为两个变量?
最佳答案
您可以使用
grep -o '\[[^][]*]' src/config/mail.ini
-o
选项使 grep
提取匹配的子字符串而不是打印匹配行,并且 \[[^][]*]
模式匹配:
-
\[
- 一个[
字符 -
[^][]*
- 除]
之外的 0 个或多个字符和[
(使用“智能放置”,括号表达式开头的]
被视为]
并且[
字符在括号表达式内并不特殊) -
]
- 一个]
char(无需转义]
)。
逐场处理比赛:
while read -r line ; do
echo "Processing $line"
# your code goes here
done < <(grep -o '\[[^][]*]' src/config/mail.ini)
关于regex - 获取括号内的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60639591/