【发布时间】:2017-11-01 14:05:27
【问题描述】:
我想在常规文件的每一行中获取一部分。为此,我在脚本中使用了程序 awk。我需要将每个部分放在一个数组中。这样的工作:
declare -i j=1
awk 'BEGIN { FS="|" } { a[j]=$6; ((j++)) }' myFile
但是当我需要使用数组时,我在脚本之后遇到了问题。实际上,脚本的其余行(即该块之外的行)看不到 awk 块中的数组。这个问题怎么解决?
【问题讨论】:
-
您的数组在 awk 脚本终止后不再存在。 awk 脚本内部和外部的变量
j指的是两个不同的东西。 -
顺便说一句:虽然
((j++))也适用于awk,但没有理由将表达式括在括号中(与bash不同)。
标签: bash variables awk scope scripting