このスクリプトをMacで作成して、一時ファイル内のすべてのURLをループし、それぞれをカールして、それぞれを異なる名前で保存します。
for i in `cat temp`; do echo $i; n= awk -F/ '{printf $4}' <<< $i; curl $i -o $n.json; done
しかし、期待どおりに実行されることはありません。それらは常にファイル「.json」に出力されます。スクリプトのどこが悪いのかわかりません。
特定のソリューションでは、2つの問題があります。1つ目は、ループにcatを使用する必要がないことと、awkコマンドを変数nに展開していないことです。コードは次のように記述する必要があります。
while read i;
do
echo "$i";
n="$(awk -F/ '{printf $4}' <<< "$i")";
curl "$i" -o "$n.json";
done < temp
Awkは、より完全なソリューションとして使用することもできます。
awk -F\/ '{ print "curl "$0" -o "$4".json" }' temp | bash
ファイル全体をawkで処理し、実行のためにbashにパイプする前にcurlコマンドを作成します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加