bash创建一个csv文件

时间:2017-03-05 18:01:53

标签: bash csv

我想创建一个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

1 个答案:

答案 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