目次
4月9日(火) シェルスクリプトであそぼう
今日の雨は土砂降りというレベルですごかった。AtCoder Problemsでの難易度が150~300くらいの問題を10問くらいACで通して、メモを残す作業をしていたら疲れ果ててしまった。弱い。
シェルスクリプトであそぼう
さて、シェルスクリプトで、サイト側で001
, 002
のようなパディング付きの連番をパス構造として持っているURLのPDFファイルを一括で落としたくて、以下のようなシェルスクリプトを組んだので紹介する。
seq 10 \
| while read x; do \
printf '%03d\n' $x; \
done \
| xargs -I{} curl -o {}.pdf https://www.example.com/{}/target.pdf
一応イメージしやすくするために、このシェルスクリプトを使って落とすURLはこんな感じだよ、という注釈をつけておく。seqで1始まりの連番を10まで生成して、その出力を一行ずつ読み取ってprintfでフォーマットをかけたものを、最終的にxargsに通して複数の引数に展開している。xargsは今回Pythonのzip()関数みたいな使い方をしていて、データの行と列を入れ替えるような動作をしている。
https://www.example.com/001/target.pdf
https://www.example.com/002/target.pdf
https://www.example.com/003/target.pdf
...
シェルスクリプトで連番を叩くときはできるだけシェルの機能に依存しないようにしたい。
さて、寝ます。
前の記事
関連投稿
日記
Podmanで同一ネットワーク内の他のコンテナのドメイン名を解決できるようにする
Podmanで、ネットワークスタックをNetavarkに変更して、同一ネットワーク内の他のコンテナのドメイン名を解決できるようにします。 続きを読む
コメント
コメントはありません。