ごらくらいふ

プログラミングしたりゲームしたり

bash

ボツ案: 同じ内容で、ファイル名が連番のファイルを作成する

zenn に1件記事を書いた。 記事に仕立てようと調べていく内にコマンドの内容が変わっていったので、その供養記事。 zenn.dev 決定稿 (2021-05-04 に zenn.dev へ投稿したもの) cd /path/to/diary/2021/05 seq -f '%02g.md' 1 31 | xargs -n 1 cp /path/to/te…

vimをビルドするスクリプト書いたらただそれだけでも捗りがあった

自分好みの./configureオプションをどこかに残しておきたかっただけなんだけど、そのままmakeしてしまえと思ったのです。 makeがだばだばと状況を吐き出す姿は頼もしい… dotfiles/build-latest-vim at master · yajamon/dotfiles · GitHub 一応 2017-12-01現…

gitのコミットハッシュを見て、処理を続行するか判断する

結論 git rev-parseでコミットハッシュを取得できる。 たとえば、リモートで変更があるかどうかによって、処理を分岐させることができる。 git remote # origin # upstream git fetch --all --prune if [ $(git rev-parse master) = $(git rev-parse upstrea…

Git Bash on Windowsでパス区切り文字をバックスラッシュに変換する(そしてExplorer.exeでカレントディレクトリを開く)

Git Bash on WindowsからExplorer.exeを呼び出す場合、パスの書式をWindowsに寄せておく必要がある。 結論 # aliases alias convertFullPathToWindowsFormat='sed -e "s/^\\/\\([a-zA-Z]\\)\\//\\1:\\\\/" | sed -e "s/\\//\\\\/g"' explorer /e,$(pwd | con…

sedを使って$PATHの中身を一行ずつ表示する

区切り文字:を半角スペースにしてforで回すという回り道をしてしまったので備忘。 \nでいいじゃんっていう。 echo $PATH | sed -e "s/:/\n/g"

自分の.vimrcをgistからダウンロードする

gist idやraw_urlを目視確認してからcurlするのは人間のすることじゃない、ということで。 前提 jqが使える curlが使える gistにある.vimrcはpublicである .vimrcはちゃんと.vimrcという名前にしている 複数.vimrcがある場合は、一番ファイルサイズの大きい.…

URL listをcurlにパイプで渡してダウンロードしたい

jqでURL取り出してCurlに引き渡したかった。(しかも1件だけ) 「curl (標準出力 OR パイプ)」とかでggってもPostするデータをtextからとかそんなんばっか。 結論 # cat url_list.txt | xargs -n1 curl xargsコマンドを使って指定したコマンドを並列実行させ…

typescript環境作りに2時間かかってたのでスクリプトを書いた

「あーたいぷすくりすとの環境つくろー」つって2時間かかってるのアホ過ぎてプッチン来たぞ— 焼きニー (@Yajamon) October 30, 2016 tscそのまま使ってwatchでもかけて居れば良かったのでは— 焼きニー (@Yajamon) October 30, 2016 「まずコード書こうよ」っ…

共通のキーワードを持つファイルたちをBashで一括置換リネームする

記事タイトルの通り、共通のキーワードを持つファイルたちを一括でリネームしたい状況になった。 たとえば デザイナと image_yyyymmdd_{s,m,l}というファイル名でやり取りしてるが、最終的にはyyyymmddが不要とか、キーワードに置換するとか app.yyyymmdd.lo…

リリースするファイルに対応したバックアップを作る

本番に手作業でリリースする際、改修したファイルだけを取り出す。 リリースして問題があった場合に復元するため、バックアップを用意するが、その作業に手間取ったので備忘。 作業内容 登場するディレクトリは3種類 release リリースするものが詰まったディ…

bashでfor in文を叩く

半角スペースで句切られた文字列を回せるらしい sum=0 for number in 1 2 3 4 5 6 7 8 9 10 do sum=$((sum+number)) done echo $sum # 55 lsなどのコマンド実行結果も回せる for item in $(ls /path/to/directory) do echo name is $item done

tail で行番号を表示したい。それも元ファイル基準の。

tail 行番号でggって nl が出てくる理由がわかった。 使うコマンド tail nl wc 方法 tail 結果に nl で行番号を付与する。 # 元ファイルの行数を確認する wc -l path/to/file # 200とか出てくる # tailする tail -20 path/to/file | nl -v 181 # 全体行-tail…