2017-08-30 110 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,運行此代碼之前。否則,您可能會收到錯誤,該目錄不存在。