我有以下脚本,它使用 awk 将字段与用户输入匹配
NB=$#
FILE=myfile
#GET INPUT
if [ $NB -eq 1 ]
then
A=`awk -F "\t" -v town="$1" 'tolower($3) ~ tolower(town) {print NR}' $FILE`
fi
如果我打印输出,它会显示:
7188 24369 77205 101441
这是我所期望的。然后,如果我执行以下操作:
IFS=' '
array=($A)
echo ${#array[@]}
我实际上得到的长度为 1(?)。此外,如果我尝试:
for x in $array
do
echo $x
done
它实际上打印出来:
7188
24369
77205
101441
for...in
我怎样才能让它返回 4 的长度。如果只有 1 个元素,我不明白它是如何工作的?
编辑 :
$A | od -c
在我创建数组之前的回声是:
0000000 7 1 8 8 2 4 3 6 9 7 7 2 0 5
0000020 1 0 1 4 4 1 \n
0000030
$A | od -c
创建数组后的回显是:
0000000 7 1 8 8 \n 2 4 3 6 9 \n 7 7 2 0 5
0000020 \n 1 0 1 4 4 1 \n
0000030