我想在中进行非贪心模式(正则表达式)匹配awk
。这是一个例子:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
是否可以编写选择较短字符串的正则表达式?
@article{gjn,
而不是这个长字符串?:
@article{gjn, Author = {Grzegorz J. Nalepa},
我想得到这个结果:
Author = {Grzegorz J. Nalepa},
我有另一个例子:
echo“ ,文章{gjn,作者= {Grzegorz J. Nalepa},” | awk'{sub(/ , [^,] *,/,“”); 打印}' ↑↑^^^^^^
请注意,我在输入字符串和正则表达式的第一个位置将@
字符更改为逗号(,
)字符(并且也更改.*
为[^,]*
)。是否可以编写选择较短字符串的正则表达式?
, Author = {Grzegorz J. Nalepa},
而不是更长的字符串?:
,article{gjn, Author = {Grzegorz J. Nalepa},
我想得到这个结果:
,article{gjn
Author
下一个逗号和空格,然后空格,然后=
跟空格,然后{
其次是任何非}
其次}
,尽管这需要(除其他事项外),你不能嵌套{}
的内部= { ... }
部分。