无法在Bash - Terminal Mac OSx中将文件扩展名附加到字符串数组

时间:2017-05-19 13:17:04

标签: bash

我的这个CSV有2列:一列包含名称,另一个文件名没有扩展名。

当我解析它并将值存储在2个数组中时,我想在文件名中添加路径和PDF扩展名,但是当我这样做时,我会得到这样的结果:

Giacomos-MBP:test Jack$ ./test.sh -p e.csv -a 2017
.pdf://www.test.com/2017/03cr14a076d
.pdf://www.test.com/2017/03bg15a365d
.pdf://www.test.com/2017/03bs15a451d
.pdf://www.test.com/2017/03bg15a440d
.pdf://www.test.com/2017/03cr16a570d
.pdf://www.test.com/2017/03bg15a794d

我希望

http://www.test.com/2017/03bg15a794d.pdf

代替

有人知道为什么吗?看起来扩展程序位于路径前面

这是我的剧本

#!/bin/bash

while getopts p:a: arg
do
    case $arg in
        p) multi=$OPTARG 
            ;;
        a) anno=$OPTARG
            ;;
    esac
done

declare -a citta
declare -a codice
i=0

while IFS=";" read col1 col2 do

    citta[$i]=$col1;
    codice[$i]=$col2;
    ((i++))

done < $multi


cartella='http://www.test.com/'$anno'/'
total=${#citta[*]}


for (( i=0; i<=$(( $total -1 )); i++ )) do

    last="${codice[$i]}.pdf"
    echo $cartella$last

done

正如@FredrikPihl建议这是我得到的输出

Giacomos-MBP:test Jack$ ./test.sh -p e.csv -a 2017
+ getopts p:a: arg
+ case $arg in
+ multi=e.csv
+ getopts p:a: arg
+ case $arg in
+ anno=2017
+ getopts p:a: arg
+ declare -a citta
+ declare -a codice
+ i=0
+ IFS=';'
+ read col1 col2
+ citta[$i]=Agnadello
+ codice[$i]=$'03cr14a076d\r'
+ (( i++ ))
+ IFS=';'
+ read col1 col2
+ citta[$i]=Arcene
+ codice[$i]=$'03bg15a365d\r'
+ (( i++ ))
+ IFS=';'
+ read col1 col2
+ citta[$i]=Artogne
+ codice[$i]=$'03bs15a451d\r'
+ (( i++ ))
+ IFS=';'
+ read col1 col2
+ citta[$i]=$'\r'
+ codice[$i]=
+ (( i++ ))
+ IFS=';'
+ read col1 col2
+ total=4
+ cartella=http://www.test.com/2017/
+ (( i=0 ))
+ (( i<=3 ))
+ last=$'03cr14a076d\r.pdf'
+ echo $'http://www.test.com/2017/03cr14a076d\r.pdf'
.pdf://www.test.com/2017/03cr14a076d
+ (( i++  ))
+ (( i<=3 ))
+ last=$'03bg15a365d\r.pdf'
+ echo $'http://www.test.com/2017/03bg15a365d\r.pdf'
.pdf://www.test.com/2017/03bg15a365d
+ (( i++  ))
+ (( i<=3 ))
+ last=$'03bs15a451d\r.pdf'
+ echo $'http://www.test.com/2017/03bs15a451d\r.pdf'
.pdf://www.test.com/2017/03bs15a451d
+ (( i++  ))
+ (( i<=3 ))
Giacomos-MBP:test Jack$ 

0 个答案:

没有答案