【问题标题】:Change the output directory on command line For Loop在命令行 For Loop 上更改输出目录
【发布时间】:2017-08-30 21:36:52
【问题描述】:

我一直在使用 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

我觉得我遗漏了一些东西,或者我需要在如下所示的 sn-p 中更改一些东西,但我就是无法解决。

x1=${x%%.*}

在这方面的任何帮助都会很棒,我提前感谢你。

【问题讨论】:

    标签: for-loop command-line directory csvkit


    【解决方案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。否则你会收到一个错误,那个目录不存在。

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2021-10-03
      • 2021-09-14
      • 2014-01-05
      • 2016-01-21
      相关资源
      最近更新 更多