bash homedir /多次替换?

时间:2015-05-30 19:15:28

标签: bash csv glob

我正在将一些xls文件转换为CSV,需要从文件名中提取一些内容,看起来像~/foo2008-2012tmpl.xls。使用2008调用时,我需要脚本中的foo2008-2012tmpl.csvfoo。我目前的版本是:

file=(~/$1*tmpl*xls)
year=${file/*$1/}
year=${year/-20??tmpl.xls/}
loffice  "-env:UserInstallation=file:///tmp/LibO_Conversion" --headless --convert-to csv $file --outdir .
localfile=$(basename $file)
csvfile=${localfile/xls/csv}

哪个有效,但不太漂亮。是否可以一次性或多种方式使用bash进行多个字符串替换以从文件名中获取year?我尝试了extglob,但是当我添加一个从未匹配的|时:/

同样,从/home/chx/...xls开始一次性移除$file部分的任何方式?

1 个答案:

答案 0 :(得分:0)

可能是:

 year=$(expr "$file" : ".*$1\(....\)")