我想在中进行非贪心模式(正则表达式)匹配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下一个逗号和空格,然后空格,然后=跟空格,然后{其次是任何非}其次},尽管这需要(除其他事项外),你不能嵌套{}的内部= { ... }部分。