我想创建一个csv文件。 .txt文件的文件名应该是标题,.txt文件中的所有jpgs文件都应该是行。
示例:
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,版本4.3.33
答案 0 :(得分: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