2017-12-01 12 views
2

私はcurlステートメントの結果をたどり、返された各URLを削除しようとしています。Bash Curlによる検索結果の移動

{ 
    "results" : [ { 
    "uri" : "URL/api/storage/generic-sgca/Lastest_Deploy.tar", 
    "created" : "2017-09-14T11:59:14.483-06:00" 
    }] 

はこのような50の以上の行があります。次返し

#!/bin/bash 

declare -i Current_Date 
declare -i Three_Months_Ago 

Current_Date=($(date +%s%N)/1000000) 
Three_Months_Ago=(${Current_Date}-7889238000) 

curl -Username:Password "URL/api/search/dates?dateFields=created&from=${Three_Months_Ago}&today&repos=generic-sgca" 

。今度は、別の "-X DELETE" curlコマンドを実行して、返される各URLを削除したいと考えています。など:

URL=curl -Username:Password "URL/api/search/dates?dateFields=created&from=${Three_Months_Ago}&today&repos=generic-sgca" 

curl -Username:Password -X DELETE ${URL} 

またはそのようなもの。どうすればこれを達成できますか?

EDIT:

私はこれを試したし、動作していないよう:

#!/bin/bash 

declare -i Current_Date 
declare -i Three_Months_Ago 

Current_Date=($(date +%s%N)/1000000) 
Three_Months_Ago=(${Current_Date}-7889238000) 

while read -r uri; do 
curl -Username:Password -X DELETE "$uri" 
done < <(
    curl -Username:Password "URL/api/search/dates?dateFields=created&from=${Three_Months_Ago}&today&repos=generic-sgca" | # get the list of uris 
    grep -o "uri" | # filter out everything else 
    tr -d ','  | # remove commas 
    awk '{print $3}' # print just the uri 
    ) 

私はお返しにこれを取得する:

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 3225 0 3225 0  0 3225  0 --:--:-- --:--:-- --:--:-- 15140 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
curl: (3) <url> malformed 
+0

「echo curl -Username:Password -X DELETE」に変更すると、あなたのURIがどのように見えるかを確認できます。$ uri "'幸いです。 – shellter

答えて

1

行うための共通のBashイディオム可変数の入力行を持つものは、次のとおりです。

while read -r line; do 
    something_interesting "$line" 

done < <(command) 

ここではスクリプト全体を書くのに十分な情報がありませんが、この行に沿った何かが動作し、開始する場所を提供するはずです。

while read -r uri; do 
    curl_request_to_delete_resource "$uri" 

done < <(
    curl $parameters | # get the list of uris 
    grep -o "uri" | # filter out everything else 
    tr -d ','  | # remove commas 
    awk '{print $3}' # print just the uri 
    ) 
+0

OPの編集を確認してください。ここにコードを投稿する方法はわかりません。私はこれを試して、私はそれを働かせることはできません。 –

+1

内側のcurl呼び出しを 'echo'で置き換えたらどうなりますか?それは間違っていることをデバッグするのに役立ちます。 – Austin

関連する問題