出于某种原因,我试图弄清楚我正在从这个脚本中打印出“-bash”:
cat sample | awk -v al=$0 -F"|" '{n = split(al, a, "|")} {print a[1]}'
“样本”文件包含 psv“管道分隔值”,如 a|b|c|d|e|f|d。
我的意图是使用数组。
上述脚本的结果是一个长度为 1 的数组,其中包含的唯一项是“-bash”,即 shell 的名称。
默认情况下,$0 指向当前使用的程序,但据我所知,在 awk 脚本中,$0 参数“应该”指向正在读取的整行。
因为我想了解问题的确切位置是“我是 bash/awk 的新手”,你能指出以下哪些步骤失败了吗?
1-“连接”示例文件并将其作为 awk 脚本的输入传递
2-定义一个名为 'al' 的变量,其中包含在 'sample' 中的每一行作为值
3-定义一个管道“|” 作为字段分隔符
4-定义一个动作,将“al”的值拆分为一个名为“a”的数组,使用管道作为拆分器
5-定义另一个动作,在这种情况下,它只是打印数组中的第一项
有什么建议吗?谢谢你!