【发布时间】:2014-03-20 18:52:05
【问题描述】:
有人可以解释一下这种行为吗?
$ echo "A_B_C_D" | awk '{split($0,a,"_"); for (i in a) {print i,a[i]}}'
2 B
3 C
4 D
1 A
与
相同$ awk '{split("A_B_C_D",a,"_"); for (i in a) {print i,a[i]}}' empty
2 B
3 C
4 D
1 A
其中空是一行文件。
但是,这是可行的:
$ echo "A_B_C_D" | awk '{n=split($0,a,"_"); for (i=1;i<=n;i++) {print i,a[i]}}'
1 A
2 B
3 C
4 D
谢谢
【问题讨论】:
-
我给出的最后一个例子(“This works)给出了一个有序的输出。所以我想回答的问题是,如果我提出的那个对gawk 3.1.0有效, 对 MacOS 中的 awk 无效,那么,为什么会出现这种行为?