Bash:在输出结果中添加输入文件名

时间:2016-10-14 06:16:07

标签: bash shell curl

我正在使用cURL API在API服务上提交文件,并为提交的文件返回一个名为taks_id的内容。

#submitter.sh

creation_date=$(date +"%m_%d_%Y")
task_id_file="/home/results/$creation_date"_task_ids".csv"
for i in $(find $1  -type f);do
        task_id="$(curl -s -F file=@$i http://X.X.X.X:XXXX/api/tiscale/v1/upload)"
        final_task_id=$(echo $task_id | grep -o 'http\?://[^"]\+')
        echo "$final_task_id" >> $task_id_file
done 

#Result ( 10_13_2016_task_ids.csv )

http://192.168.122.24:8080/api/tiscale/v1/task/17
http://192.168.122.24:8080/api/tiscale/v1/task/18
http://192.168.122.24:8080/api/tiscale/v1/task/19

运行方法:

$./submitter.sh /home/files/pdf/

现在,使用[find $ 1 -type f]逻辑将获得提到文件名的完整路径。

#find /home/files/pdf -type f 

/home/files/pdf/country.pdf
/home/files/pdf/summary.pdf
/home/files/pdf/age.pdf 

如何添加文件名以及cURL API响应结果。例如,在提交"/home/files/country.pdf"时,API可能会为task_id提供http://192.168.122.24:8080/api/tiscale/v1/task/ 17'`。

期待结果:

country.pdf,http://192.168.122.24:8080/api/tiscale/v1/task/17
summary.pdf,http://192.168.122.24:8080/api/tiscale/v1/task/18
age.pdf,http://192.168.122.24:8080/api/tiscale/v1/task/19

我是Bash的初学者,有关如何实现这一目标的任何建议吗?

0 个答案:

没有答案