首先"清洁"。
我想与数组分开逗号。在我的脚本中,我将数据收集到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
。