2017-08-30 71 views
0

我一直在使用CSVKIT构建一个解析器来将固定宽度数据文件解析为csv。我已经将以下代码放在一起来遍历目录中的所有文件,但是这个相同的代码也会将这些文件放回到它所来自的同一个目录中。作为最佳实践,我相信使用'IN'文件夹和'OUT'文件夹。我也在MAC上处理这个命令行。在命令行上更改输出目录For循环

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 %%。*}

任何帮助将是美好的,我感谢你提前。

回答

1

当您运行,

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

您PROGRAMM的输出将被写入该文件,$ {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,运行此代码之前。否则,您可能会收到错误,该目录不存在。