0

我一直在使用 CSVKIT 构建将固定宽度数据文件解析为 csv 的解决方案。我将下面的代码放在一起来遍历目录中的所有文件,但是同样的代码也将文件放回它来自的同一目录中。作为最佳实践,我相信使用“IN”文件夹和“OUT”文件夹。我也在 MAC 上处理这个命令行。

for x in $(ls desktop/fixedwidth/*.txt); do x1=${x%%.*}; in2csv -f fixed -s desktop/ff/ala_schema.csv $x > $x1.csv; echo "$x1.csv done."; done

我觉得我遗漏了一些东西,或者我需要在下面显示的代码段中更改一些东西,但我就是不能指望它。

x1=${x%%.*}

对此的任何帮助都会很棒,我提前感谢您。

4

1 回答 1

1

当你跑步时,

in2csv -f fixed -s desktop/ff/ala_schema.csv $x > $x1.csv

您的程序的输出将写入文件 ${x1}.csv。

因此,只需为 x1 设置正确的路径:

output_dir=/path/to/your/dir/
output_file=${output_dir}${x%%.*}.csv
in2csv -f fixed -s desktop/ff/ala_schema.csv $x > $output_file;

但是,您应该在运行此代码之前创建您的 output_dir。否则你会收到一个错误,那个目录不存在。

于 2017-08-30T21:53:04.040 回答