我可以在AWK中设置多个定界符,例如下面的示例
BEGIN { Actions}
{ACTION-1} # here delimiter will be comma ","
{ACTION-2} # here delimiter will be colon":"
{ACTION-1} # here delimiter will be space " "
END { Actions }
答案 0 :(得分:4)
并非如此,但是您可以做的是显式拆分您要查看的行。那应该是:
{ split($0, parts, ","); ACTION-1 }
{ split($0, parts, ":"); ACTION-2 }
{ split($0, parts, " "); ACTION-1 }
通过这种方式,您可以获得所需要的值,但是它们可以作为parts[1], parts[2], ...
而不是$1, $2, ...
来访问。
答案 1 :(得分:3)
是的,您可以:
BEGIN { Actions}
{FS=","; $0=$0; ACTION-1} # here delimiter will be comma ","
{FS=":"; $0=$0; ACTION-2} # here delimiter will be colon":"
{FS=" "; $0=$0; ACTION-1} # here delimiter will be space " "
END { Actions }
向$0
分配任何内容都会导致awk使用FS
的当前值重新进行字段拆分,因此在此之前它已经将记录拆分为字段的事实是不相关的。
话虽如此-几乎可以肯定,您要尝试执行的操作都是更好的方法。