BASH脚本数组到CSV



我想与数组分开逗号。在我的脚本中,我将数据收集到Array outputArr,然后我想将其 echo进行检查,但是现在我被卡住了。我想使用:

在控制台上打印它

echo ${outputArr[*]}

,但我的输出错误。因此,我试图调试它并这样写:

echo ${outputArr[0]}
echo ${outputArr[1]}
echo ${outputArr[*]}
echo "-------------"

好的,这是我的输出:

Terminally Yours
2204
 2204nally Yours
-------------

和其他示例:

Alfa
1491
 1491
-------------

为什么一开始就被空间覆盖了吗?当然,我的目标是(最后):

Alfa;1491

在这一点上:

Alfa1491

编辑:

while read -r line
do
    singleLine=$line
    if [[ $singleLine =~ $regexVenueName ]]
    then
        singleLine=${singleLine/<span id="ctl00_MainContent_lbPartner" class="Partner">/}
        singleLine=${singleLine/</span> <br /><br />/}
        partnerVenueNameOutput+="$singleLine"
        outputArr[0]=$singleLine
    fi
done < "$f"

您的数组包含带有返回的元素:

$ foo=($'rterminally yours' $'r2204')
$ echo "${foo[0]}"
terminally yours
$ echo "${foo[1]}"
2204
$ echo "${foo[*]}"
2204inally yours 

对于您的代码,您可以添加以下内容以从变量中删除运输返回:

singleLine=${singleLine//$'r'/}

要删除每个数组元素的任何尾随的马车返回,请尝试

outputArray=( "${outputArray[@]%$'r'}" )

但是,最好检查如何将outputArray设置为首先设置,并防止托架返回首先添加。如果您是从使用DOS线结尾的文件中读取的,请首先使用dos2unix

首先"清洁"。

相关内容

  • 没有找到相关文章