Bash:请教关于AWK中split()方法的使用

[root@localhost home]# awk 'BEGIN { print split($0, arr, ":") }' xxxx
0
[root@localhost home]# cat xxxx
21:35:58

文档上说split()会返回fields的数量,但这里为什么输出的却是0而不是3呢?

阅读 3.6k
1 个回答

输出0是因为$0没有被替换为正确的字符串,原因是你加了BEGIN
BEGIN是在awk扫描输入之前进行的操作,此时还没有进行文件读取操作,去掉BEGIN就行了。

awk '{ print split($0, arr, ":") }' xxxx
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进