在RS中打印找到的regexp结果

在RS中打印找到的regexp结果,regex,printing,awk,record,separator,Regex,Printing,Awk,Record,Separator,大家好,你们能帮我把regexp的结果打印出来吗 awk 'BEGIN {RS="--[0-9a-zA-Z]+--"} /pattern/' awk-test.txt pattern=“--[0-9a-zA-Z]+--”可以等于--95700e1b--或--0dcaf754--或其他 awk打印出RS之间的文本块,如何打印找到的RS PS对不起,我的英语不好。因为在可移植的awk脚本中RS只能是一个字符,所以我假设您使用的是gawk。在这种情况下,您可以引用RT,它将包含与RS中指定的正则表达

大家好,你们能帮我把regexp的结果打印出来吗

awk 'BEGIN {RS="--[0-9a-zA-Z]+--"} /pattern/' awk-test.txt
pattern=“--[0-9a-zA-Z]+--”可以等于--95700e1b--或--0dcaf754--或其他 awk打印出RS之间的文本块,如何打印找到的RS


PS对不起,我的英语不好。

因为在可移植的
awk
脚本中
RS
只能是一个字符,所以我假设您使用的是
gawk
。在这种情况下,您可以引用
RT
,它将包含与
RS
中指定的正则表达式匹配的文本。(
RT
是记录终止符,因此与当前记录末尾而非开头的
RS
匹配的文本值。)

使用[[:alnum:]而不是[[0-9a-zA-Z]]可移植,特别是在非英语母语国家。谢谢!)gawk'BEGIN{RS=“--[0-9a-zA-Z]+-”}/pattern/{print$0;print RT}”awk-test.txt