Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2866

Macで定期的にcsvファイルをDLして任意の名前をつけて保存する

$
0
0
社内のツールやクラウドツールなどからcsv形式のファイルをDLする業務を自動化したい ツール側で定期DLの仕組みがなくローカルで自動化する必要があるとする Macの場合はopenコマンドを利用してDLを自動化する方法が便利 以下の手順でやることが多い openコマンドでcsvファイルをDLできるようにする 1.csvダウンロードのURLを読み解く URLを調べる クラウドツールなどで、csvダウンロードのURLが公開されていることが前提 DLボタンを右クリックでパスをコピーなどでわかる事が多い URLを解析する だいたい以下のような形式が多い https:xxxxxxx{固定URL1}/segmentxx{セグメント}/xxxxxxx{固定URL2}/yyyymmdd{データ抽出開始日}/xxxxxxx{固定URL3}/xx{データの抽出期間} この固定のURLと可変のパラメータを見極める openコマンド用の変数を考える 上記の例でいうと、以下のような変数が考えられる 固定URLの変数 URL変数1=https:xxxxxxx{固定URL1} URL変数2=/xxxxxxx/{固定URL2} URL変数3=/xxxxxxx{固定URL3} 可変パラメーターの変数 セグメント=segmentxx{セグメント} データ抽出開始日=yyyymmdd データの抽出期間=xx{データの抽出期間} この可変パラメーターを自由に変更しつつ、openコマンドで開けるようにする 2.openコマンドで抽出するscript openコマンドの基本的な使い方 #!/bin/bash open "https://qiita.com/" これを、解析したURLの変数を使えるようにする #!/bin/bash # 抽出用の変数 ## 固定URLの変数 URL変数1=https:xxxxxxx{固定URL1} URL変数2=/xxxxxxx/{固定URL2} URL変数3=/xxxxxxx{固定URL3} ## 可変パラメーターの変数 セグメント=segmentxx{セグメント} データ抽出開始日=yyyymmdd データの抽出期間=xx{データの抽出期間} # 抽出用openコマンド open ""$URL変数1""$セグメント""$URL変数2""$データ抽出開始日""$URL変数3""$データの抽出期間"" さらに、引数で可変パラメーターを指定できるようにする #!/bin/bash ######################################### # csvDL用script # 引数 # 1:セグメント # 2:データ抽出開始日(yyyymmdd) # 3:データの抽出期間 # (利用例)sh csv_dl.sh segmentA 2021-7-1 7 ######################################### # 抽出用の変数 ## 固定URLの変数 URL変数1=https:xxxxxxx{固定URL1} URL変数2=/xxxxxxx/{固定URL2} URL変数3=/xxxxxxx{固定URL3} ## 可変パラメーターの変数 セグメント=$1 データ抽出開始日=$2 データの抽出期間=$3 # 抽出用openコマンド open ""$URL変数1""$セグメント""$URL変数2""$データ抽出開始日""$URL変数3""$データの抽出期間"" 3.DLしたファイルの名前を変更して保存するscript csvDL系のファイル名はだいたいわかりにくいので一貫性のあるファイル名に変更する csvDLしたファイルがローカルのdownloadsにおかれる場合を想定 固定のファイル名+セグメント名+データ抽出開始日+データ抽出期間.csvというファイル名にしたい場合 #!/bin/bash cd /Users/DIRNAME/Downloads text=$(ls -t | head -n 1) mv "$text" "ファイル名"$セグメント""$データ抽出開始日""$データの抽出期間".csv" 4.処理を一つにまとめる #!/bin/bash ######################################### # csvDL用script # 引数 # 1:セグメント # 2:データ抽出開始日(yyyymmdd) # 3:データの抽出期間 # (利用例)sh csv_dl.sh segmentA 2021-7-1 7 ######################################### # 抽出用の変数 ## 固定URLの変数 URL変数1=https:xxxxxxx{固定URL1} URL変数2=/xxxxxxx/{固定URL2} URL変数3=/xxxxxxx{固定URL3} ## 可変パラメーターの変数 セグメント=$1 データ抽出開始日=$2 データの抽出期間=$3 # 抽出用openコマンド open ""$URL変数1""$セグメント""$URL変数2""$データ抽出開始日""$URL変数3""$データの抽出期間"" sleep 10 # ファイルを保存するまでスリープさせる # ファイル名を変更して保存 cd /Users/DIRNAME/Downloads text=$(ls -t | head -n 1) mv "$text" "ファイル名"$セグメント""$データ抽出開始日""$データの抽出期間".csv" 作成したscriptを定期実行できる仕組みつくる Automatorなどを利用して定期的に叩く仕組みを作成すれば完了! 以上 ひとこと 絶対もっとよい方法ありそうなのと、書き方も拙いので忌憚なきご意見を 世の中のcsvファイルDLの命名規則を統一化してほしい

Viewing all articles
Browse latest Browse all 2866

Trending Articles