在bash脚本中使用awk标记字符串

我想逐行读取文件的每一行,调整每一行的内容并进行一些处理。文件结构和脚本如下所示

[root@localhost:~] cat vms.txt
mahmood May 24
[root@localhost:~] cat power_offs2.sh
#!/bin/bash
INPUT=/vms.txt
while IFS= read -r line; do
    echo "$line" | awk '{split($0,a,"|"); print a[1],a[2],a[3]}'
    NAME=a[1]
    NEW_MONTH=a[2]
    NEW_DAY=a[3]
    echo $NAME "-" $NEW_MONTH "-" $NEW_DAY
done < $INPUT

但是输出是

[root@localhost:~] sh /power_offs2.sh
mahmood May 24
a[1] - a[2] - a[3]

似乎数组是在awk范围内定义的。我该如何解决?