2017-03-05 24 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 

私は、バージョン4.3.33

答えて

1

ただ、一時ファイルの束を組み合わせることpasteを使用しGNU bashのを使用しています。 (の出力が1行に1つのファイル名であると仮定すると)

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

関連する問題