我在函数中有以下awk行。
match($0,/'(.*)'/,a)
但是我想这样做,以便它匹配'(.*)'
或"(.*)"
。我尝试用不同的交替语法编写它,但没有用,例如:
match($0,/'(.*)'|"(.*)"/,a)
然而它不想工作。
只是想知道是否有人可以指出这里发生了什么。
答案 0 :(得分:3)
你需要:
match($0,/\047([^\047]*)\047|"([^"]*)"/,a)
a
使其特定于gawk。如果您将脚本存储在以awk -f script
执行的文件中,则可以将\047
更改为'
。
答案 1 :(得分:2)
如果它是一个awk脚本,请尝试这样做:
match($0, /['"](.*)['"]/, a)
如果没有,(命令行):
match($0, /[\042\047](.*)[\042\047]/, a)