2017-03-05 115 views
0

我想創建一個csv文件。 .txt文件的文件名應該是標題,.txt文件中的所有jpgs文件應該是行。bash創建csv文件

例子:

filename1.txt, filename2.txt, filename3.txt 
filename1a.jpg,filename2a.jpg,filename3a.jpg 
filename1b.jpg,filename2b.jpg,filename3b.jpg 
filename1c.jpg,filename2c.jpg,filename3c.jpg 
       ,filename2d.jpg, 

我遇到的問題是如何追加與上面正確格式文件?

for f in $(ls *.txt) do 
    csv_header="$f" 
    #get all jpgs in current txt file 
    array_jpgs=($(get_jpgs "$f")) 
    for jpg in "${array_jpgs[@]}" do 
     #printf "%s," "$csv_header" >> "$CSV_FILE" 
    done 
done 

我使用GNU的bash,版本33年3月4日

回答

1

只需使用paste一堆的臨時文件合併。 (假設get_jpgs輸出爲每行一個文件名。)

for f in *.txt; do # Do not parse ls 
    { printf '%s\n' "$f" 
     get_jpgs "$f" 
    } > "$f.tmp" 
done 
paste -d, *.tmp > "$CSV_FILE" 
rm *.tmp 
+0

謝謝,不知道糊。 – jack