たくさんのCSVファイルを用意したかったので、bashでやりました
まずは1つcsvファイルを用意
$ ls
sample.csv
for文を使ってコピーします
$ for i in {1..20}: do cp sample.csv $i.csv; done;
これで 1.csv 2.csv 3.csv … と20個のcsvファイルができました
普通のシェルスクリプトをセミコロンで区切ってワンライナーにしてるだけでした
ひびのきろく
たくさんのCSVファイルを用意したかったので、bashでやりました
まずは1つcsvファイルを用意
$ ls
sample.csv
for文を使ってコピーします
$ for i in {1..20}: do cp sample.csv $i.csv; done;
これで 1.csv 2.csv 3.csv … と20個のcsvファイルができました
普通のシェルスクリプトをセミコロンで区切ってワンライナーにしてるだけでした
作業効率化のためgitコマンドが長いので、Ubuntu上で.bashrcにショートカットを登録してみました
参考: Gitコマンドラインショートカット | プログラミング | POSTD
git aliasでも短くできますが、gitが長いので、ubuntuでやります
追記
$ vim ~/.bashrc
# Git alias
alias ga='git add .'
alias gc='git commit -m'
alias gb='git branch -a'
alias gs='git status'
alias gl='git log --graph --oneline --decorate --all'
こんな感じにしてみました
認識させるため
$ source ~/.bashrc
(もしくは再起動)
これで少しは効率化
curlコマンドでslackに通知する
でcurlを使ってslackに通知した際、メッセージをシェルスクリプトで用意して送ってみました
シェルスクリプトはこんな感じ
error="何かしらのエラー"
curl_content='payload={"channel": "#channel", "username": "webhooker", "text": "'
curl_content="${curl_content}${error}"
curl_content="${curl_content}\"}"
curl="curl -X POST --data-urlencode `echo -e "'${curl_content}'"` https://hooks.slack.com/services/XXXXXXX/XXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
eval $curl
error変数にメッセージをセット、
jsonを組み立てて、
curlコマンドごと変数にセット、
evalで実行
な感じです
シェルスクリプトレベルが低すぎてこんなんになった
もっとうまくかけるはず..
bashのヒアドキュメントでコマンドを実行させるのに手間取ったのでメモ
‘EOT’のようにシングルクオート(やダブルクオート)をつけると変数が展開されません
/home/user/shell
で実行しました
こう書けばできました
#!/bin/bash
x=`pwd`
cat <<EOT
${x}
$(dirname $x)
EOT
# /home/user/shell
# /home/user/
cat <<'EOT'
${x}
$(dirname $x)
EOT
# ${x}
# $(dirname $x)
cat <<"EOT"
${x}
$(dirname $x)
EOT
# ${x}
# $(dirname $x)
コマンドの下にコメントアウトで結果を表示してます