更改命令行 For Loop 的输出目录
Change the output directory on command line For Loop
我一直在使用 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%%.*}
如果能对此提供任何帮助,我将不胜感激,在此先感谢您。
当你运行,
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。否则你会收到一个错误,那个目录不存在。
我一直在使用 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%%.*}
如果能对此提供任何帮助,我将不胜感激,在此先感谢您。
当你运行,
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。否则你会收到一个错误,那个目录不存在。