我从目录中的文件列表创建数组。 file1.jpg file2.jpg file3.jpg file4.jpg file5.jpg
我需要将数组中的每个项目(文件名)编码为base64。然后我需要制作逗号分隔的列表,以便在API请求中使用。
#!/bin/bash
array=($(ls /images/))
list=$(IFS=,; (echo "${array[@]}") | base64)
echo $list
输出:ZmlsZTEuanBnIGZpbGUyLmpwZyBmaWxlMy5qcGcgZmlsZTQuanBnIGZpbGU1LmpwZwo=
输出是一个空格分隔的文件名列表,所有文件名都编码为base64,而不是单独和逗号分隔。
通缉输出:
ZmlsZTEuanBnCg==,ZmlsZTIuanBnCg==,ZmlsZTMuanBnCg==,ZmlsZTQuanBnCg==,ZmlsZTUuanBnCg==
答案 0 :(得分:1)
您也可以使用循环来执行此操作:
list=""
for i in /images/*; do
list+=",$(basename "$i" | base64)"
done
list=${list:1}
循环遍历所有图像并构建以逗号分隔的列表。在第一个值之前有一个逗号,它在循环结束时被删除。