我的文件中有以下文本:
value={VARIABLE_NAME_A}
。文件中可能有 20 多个这样的 VARIABLE_NAME_A, B, C, etc
。
我正在尝试使用shell脚本(不是bash,因为它是alpine,而且我没有安装bash)来使用
grep
将所有这些VARIABLE_NAME_A, B, C
列出到变量中,然后将它们放入列表项中进行迭代之后就超过他们了。
但是,根据我对正则表达式的理解,这种格式应该有效..
"{[A-Z]\w+}"
。但是grep "{[A-Z]\w+}" filename.txt
没有结果..
不确定我在这里做错了什么?
为了可移植性,您可能应该使用 sed 而不是 grep,例如使用任何 POSIX sed:
sed -n 's/.*{\([[:upper:]][[:alnum:]_]+\)}.*/\1/p' file
上面假设您的输入中每行只有一个
{VARIABLE}
。