[root@localhost home]# awk 'BEGIN { print split($0, arr, ":") }' xxxx
0
[root@localhost home]# cat xxxx
21:35:58
文档上说split()会返回fields的数量,但这里为什么输出的却是0而不是3呢?
输出0是因为$0
没有被替换为正确的字符串,原因是你加了BEGIN
。BEGIN
是在awk扫描输入之前进行的操作,此时还没有进行文件读取操作,去掉BEGIN
就行了。
awk '{ print split($0, arr, ":") }' xxxx