ファイルに含まれるURLのリストをカーリングに渡します。

ファイルに含まれるURLのリストをカーリングに渡します。

複数のファイルにACLを設定する必要があります。次のコマンドを使用して保存されたオブジェクトのリストをダウンロードしました。

C:\Users\Gshrivastava\Downloads\curl_748_0>curl  -o urlname.csv -i -k -H "Authorization: HCP bXFl:29def7dbc8892a9389ebc7a5210dd844" -H "Content-Type: application/xml" -H "Accept:application/xml" -d @mqe.xml "http://tenant.hcp3.hdsblr.com/query?prettyprint

その後、URL名をテキストファイルにソートしました。

ns.tenant.hcp3.hdsblr.com/rest/pic/Cat/images.jpg 
ns.tenant.hcp3.hdsblr.com/rest/pic/Cat/6.png 
ns.tenant.hcp3.hdsblr.com/rest/pic/landscape/9.png 
ns.tenant.hcp3.hdsblr.com/rest/pic/landscape/5.png  

テキストファイルの内容>

これで、すべてのファイル名がACLに設定されるように、このファイルをパラメータまたは変数として使用したいと思います。

curl.exe -k http://ns.tenant.hcp3.hdsblr.com/rest/ACL/filename.ext/?type=acl -i -H "Authorization: HCP YWRtaW4=:29def7dbc8892a9389ebc7a5210dd844" -T acl.xml 

ベストアンサー1

私が正しく理解したら、URLリスト(1行に1つ)を含むファイルがあり、これらのURLをCURLに渡したいと思います。

これを行う2つの主な方法があります。xargsまたはコマンドの置き換え。そしてxargs

xargs <urls.txt curl …

次のコマンドで交換してください。

curl … $(cat urls.txt)

どちらの方法も一部の特殊文字を破ることができますが、URLで有効な文字を考慮すると、エンコードする必要があるxargs単一引用符()を使用する場合を除いて問題はありません。または 。'%27xargs -l

これはUnixサイトなので、Unixバリアントを実行し、bashなどのUnixシェルでこれらのコマンドを呼び出すとします。を実行していると思うと、curl.exeWindows を使用しているようです。 Unixツールを使用する場合は、Unixシェル(bashやzshなど)でこれを行うことをお勧めします。 Windowsには、xargsまたはコマンド置換機能はありません(少なくとも同じ形式ではありません)curlcmdWindowsツールを使用してこれを行う方法があるかもしれませんが、それが何であるかわからないので、ここではトピックを超えています。

また、WindowsでUnixツールを使用している場合は、URLリストがWindows行末(CR + LF)ではなくUnix行末(LFのみ)を使用していることに注意してください。 Unixツールは行がLFで終わり、CRをプレーン文字として扱うことを期待しています。詳細については、次を参照してください。ディレクトリが2回一覧表示されますそしてこのサイトの他の多くの質問。

おすすめ記事