如何在 Unix 中将 .xls 转换为 .csv

How to convert .xls to .csv in Unix

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

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

问题是文件 .xls 文件名中包含 space。所以脚本不起作用,说:

Unable to guess exporter to use for 'file:

您应该将以下内容括在双引号中以防止通配和分词:

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

还在大括号和 next/previous 对象之间包含一个 space { ... }:

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

注意:如果您仍然遇到评论中提到的 "export type" 错误的问题,可以尝试 ssconvert "${filename}".xls "${filename}".csv,因为我不熟悉它需要的确切语法。您可以使用在线工具 shellcheck.net.

轻松检查您的脚本