2

我有一个文本文件 (abc.txt),其中包含文件名以及要转换为 .csv 的路径。下面是我写的脚本:

 {while IFS= read -r f ; do
 filename="${f%.*}"
 ssconvert ${filename}.xls ${filename}.csv
done < abc.txt}

问题是文件 .xls 文件名中有空格。所以脚本不起作用,说:

无法猜测导出器用于“文件:

4

1 回答 1

1

您应该用双引号将以下内容括起来,以防止出现通配符和分词:

ssconvert "${filename}.xls" "${filename}.csv"

还包括你的花括号和下一个/上一个对象之间的空格{ ... }

{ while IFS= read -r f ; do
      filename="${f%.*}"
      ssconvert "${filename}.xls" "${filename}.csv"
done < abc.txt ; }

注意:如果您仍然遇到评论中提到的“导出类型”错误的问题,可以尝试ssconvert "${filename}".xls "${filename}".csv,因为我不熟悉它所需的确切语法。您可以使用在线工具shellcheck.net轻松检查您的脚本。

于 2017-03-14T05:11:22.367 回答