为什么数组中的元素都不为零?

时间:2019-04-23 00:18:35

标签: arrays bash shell awk

我有一个包含数千行内容的文件,如下所示:

PTR:0,1,1,11,P,X_Coord PTR:0,1,1,41,P,Y_Coord PTR:0,1,1,6,P,W_No PTR:0,1,4,-22,P,X_Coord PTR:0,1,4,42,P,Y_Coord PTR:0,1,5,0,P,W_No

我需要根据关键字(X_coord,Y_Coord,W_No)从这些行的每一行中获取没有四个字段,并放入数组中。 我正在使用keword使用awk,循环结果并将值添加到数组中。 下面是我的代码:

        awk /$X_keyword/ $ATDF | while read -r file 
        do
        VALUE=`echo $file | cut -d ',' -f 1`
        HEADER=`echo $VALUE | cut -c 1-4`
        echo $file


        if [[ $HEADER = 'PTR:' ]]; then

            VALUE=`echo $file | cut -d ',' -f 4`
            echo $VALUE
            XCOORD+=($VALUE)
            ((X++))
        fi 
    done

使用相同的代码通过更改关键字来获取Y_coord和W_No。 但是,当我不回显X_coord,Y_Coord和W_No的元素时,它显示为零。 即使我的值X也为零。我在下面使用回显:

echo $X
echo ${#XCOORD[@]}

我也在下面尝试过,也返回零。

XCOORD=($(awk -F',' '
            /$X_keyword/             {id1=$4}
            {print id1}' $ATDF )) 
X=${#XCOORD[@]}
echo $X
echo ${#XCOORD[@]}

0 个答案:

没有答案