patsplit 与 gawk 中的 split

Tim*_*Tim 3 awk gawk

在gawk手册中,我发现了两个函数patsplitsplit

  • 我想知道他们的区别是什么?

  • 目的我明白split,但是目的是什么patsplit

谢谢。

ste*_*ver 7

在 中split,您提供一个分隔符;而在你匹配分隔符之间的patsplit模式:

$ echo 'foo,bar' | awk '{n = split($0,a,/,/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
Run Code Online (Sandbox Code Playgroud)

然而

$ echo 'foo,bar' | awk '{n = patsplit($0,a,/[^,]*/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
Run Code Online (Sandbox Code Playgroud)