获取方括号之间的多个值

我想检索方括号之间的多个字符串。这是我现在使用的命令:

grep '\[*\]' src/config/mail.ini

它返回我的输出,如:

[GLOBAL]
[MAIL_1]

如何才能一一获得结果?而且,在这种情况下,作为两个变量?

zhangcy_77 回答:获取方括号之间的多个值

您可以使用

grep -o '\[[^][]*]' src/config/mail.ini

请参见online grep demo

-o选项使grep提取匹配的子字符串而不是打印匹配的行,并且\[[^][]*]模式匹配:

  • \[-一个[字符
  • [^][]*-除][以外的0个或更多字符(使用“智能放置”,括号表达式开头的]被视为][字符在方括号表达式中并不特殊)
  • ]-一个]字符(无需转义])。

要逐个匹配,请执行以下操作:

while read -r line ; do
    echo "Processing $line"
    # your code goes here
done < <(grep -o '\[[^][]*]' src/config/mail.ini)
本文链接:https://www.f2er.com/2663542.html

大家都在问