Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Bash脚本数组到csv_Arrays_Bash_Shell_Csv - Fatal编程技术网

Arrays Bash脚本数组到csv

Arrays Bash脚本数组到csv,arrays,bash,shell,csv,Arrays,Bash,Shell,Csv,我想从数组中提取逗号分隔的字符串。在我的脚本中,我收集数据到数组outputArr,然后我想echo它来检查它,但现在我被卡住了。我想使用以下方式在控制台上打印: echo${outputArr[*]} 但是我得到了错误的输出。所以我试着调试它并这样写: echo ${outputArr[0]} echo ${outputArr[1]} echo ${outputArr[*]} echo "-------------" 好的,这是我的输出: Terminally Yours 2204 220

我想从数组中提取逗号分隔的字符串。在我的脚本中,我收集数据到数组
outputArr
,然后我想
echo
它来检查它,但现在我被卡住了。我想使用以下方式在控制台上打印:

echo${outputArr[*]}

但是我得到了错误的输出。所以我试着调试它并这样写:

echo ${outputArr[0]}
echo ${outputArr[1]}
echo ${outputArr[*]}
echo "-------------"
好的,这是我的输出:

Terminally Yours
2204
 2204nally Yours
-------------
还有其他例子:

Alfa
1491
 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"
读取时-r行
做
单线=$line
如果[[$singleLine=~$regexVenueName]]
然后
单线=${singleLine/}
单线=${singleLine/
PartnerVenuNameOutput+=“$singleLine”
outputArr[0]=$singleLine
fi
完成<“$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

尝试“清理”它。您是否尝试引用变量
echo“${outputArr[0]}”
您的数组元素以回车结束,这可能是因为您从具有DOS行结尾的文件中读取数据,或者从使用回车的命令中捕获输出。@fedorqui-Yep,不起作用。@chepner-可能。。。我怎么才能把它取下来?可能在那里。我怎样才能删除它?我从wget下载的html文件中逐行读取我的文件。我更新了我的答案,添加了一些代码。
outputArray=( "${outputArray[@]%$'\r'}" )