Knowledge Base

お知らせや身辺のことを綴っています。
目次
4月9日(火) シェルスクリプトであそぼう

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
...

シェルスクリプトで連番を叩くときはできるだけシェルの機能に依存しないようにしたい。

さて、寝ます。

前の記事

4月8日(月) 日記

次の記事

4月10日(水) スパムコメントで学ぶ英語のイディオム

コメント

0

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連投稿

日記
「検索エンジンのBotについて考える」のサムネイル画像

検索エンジンのBotについて考える

このサイトに訪れているクローラの種類と数を集計して、ダウンタイムの謎を暴きます。 続きを読む

日記
「デジタル金庫環境の整備とPowerShell」のサムネイル画像

デジタル金庫環境の整備とPowerShell

PowerShellを書いて上手に暗号化ドライブを管理するソリューションを開発しました。 続きを読む

日記
「4月10日(水) スパムコメントで学ぶ英語のイディオム」のサムネイル画像

4月10日(水) スパムコメントで学ぶ英語のイディオム

out of thin airという英語のイディオムについて。 続きを読む

日記
「4月8日(月) 日記」のサムネイル画像

4月8日(月) 日記

関心が変わった 最近着手しているプロジェクトもなく、最近なんとなく手持ち無沙汰に感じていたところがあ… 続きを読む