我想检索方括号之间的多个字符串。这是我现在使用的命令:
grep '\[*\]' src/config/mail.ini
它返回我的输出,如:
[GLOBAL]
[MAIL_1]
如何才能一一获得结果?而且,在这种情况下,作为两个变量?
我想检索方括号之间的多个字符串。这是我现在使用的命令:
grep '\[*\]' src/config/mail.ini
它返回我的输出,如:
[GLOBAL]
[MAIL_1]
如何才能一一获得结果?而且,在这种情况下,作为两个变量?
您可以使用
grep -o '\[[^][]*]' src/config/mail.ini
-o
选项使grep
提取匹配的子字符串而不是打印匹配的行,并且\[[^][]*]
模式匹配:
\[
-一个[
字符[^][]*
-除]
和[
以外的0个或更多字符(使用“智能放置”,括号表达式开头的]
被视为]
和[
字符在方括号表达式中并不特殊)]
-一个]
字符(无需转义]
)。要逐个匹配,请执行以下操作:
while read -r line ; do
echo "Processing $line"
# your code goes here
done < <(grep -o '\[[^][]*]' src/config/mail.ini)