全力で怠けたい

怠けるために全力を尽くしたいブログ。

シェル

Makefile のターゲットに .PHONY を付与するワンライナー。

Makefile のターゲットに .PHONY を付与するワンライナーのメモ。 個人的には Makefile はほぼタスクランナーとして使っていなくて、定義しているターゲットはすべて phony ターゲット になっている。 *1 ターゲットが phony ターゲットであることを make に…

CSV 内のカンマを除去するワンライナー3選 + おまけ2つ。

はじめに 処理する CSV ワンライナー3選 xsv コマンド + よく知られたコマンドの組み合わせ q コマンドを使う Ruby の csv ライブラリを使う おまけ2つ 汎用言語の csv 処理用のライブラリを使う 一番確実な解決法 参考サイト Twitter で「CSV 内の数値項目…

bash と sh の test コマンドの条件式で使える演算子のチートシート。

はじめに test コマンドの条件式で使える演算子のチートシート 文字列を条件判断する演算子 数値を条件判断する演算子 ファイルを条件判断する演算子 論理演算子 はじめに ちょっとしたことはシェルで済ませるけど、条件分岐をするのに使う test コマンドで…

プログラムのちょっとした動作を確認するときはシェルが役に立つメモ。

Go を勉強している人が「Go の bufio パッケージのScanner.Err() に non nil の error を返させたい」と言ってたのでシェルを使ったら簡単にやれますよ、と話をしたときのメモ。 相手の人が書いてた Go のプログラムはこんな感じ。 // main.go package main …

shebang はシェル以外の実行可能ファイルも指定できるメモ。

shebang はシェル以外の実行可能ファイルも指定できる sed スクリプトファイルの shebang awk スクリプトファイルの shebang shebang に書くパス 参考サイト shebang はシェル以外の実行可能ファイルを指定できるのを知ったので書いておく。 shebang はシェ…

Mac の sed とか tr が illegal byte sequence エラーになるときの回避方法のメモ。

sed とか tr が illegal byte sequence エラーになる どんなことがおきるか どうしたら回避できるか Mac の sed とか tr が illegal byte sequence エラーになるときの回避方法のメモ。 sed とか tr が illegal byte sequence エラーになる どんなことがおき…

Bash でタブとかの制御文字を入力するやり方のメモ。

Bash でタブとかの制御文字を入力する Ctrl-v + 制御文字 $'\文字' Bash でタブとかの制御文字を入力するやり方をたまに聞かれるのでメモしておく。 Bash のバージョン。 $ bash --version GNU bash, version 5.1.4(1)-release (x86_64-apple-darwin19.6.0) …

シェル変数を読込専用にするメモ。

シェル変数を読込専用にする readonly コマンドでシェル変数を読込専用にする シェル変数を読込専用にするやり方のメモ。 シェル変数を読込専用にする readonly コマンドを実行するとシェル変数を読込専用にすることができるのでそのへんをメモしておく。 re…

シェルのあんまり使わないパラメータ展開のメモ。

シェルのあんまり使わないパラメータ展開のメモ ${#パラメータ}: 文字列の長さを求める ${パラメータ#パターン}: パラメータの値の先頭から パターン に一致する最短の部分を取り除く ${パラメータ##パターン}: パラメータの値の先頭から パターン に一致す…

シェルのパラメータ展開のメモ。

シェルのパラメータ展開のメモ ${パラメータ:-値}: デフォルト値の指定 - 1 ${パラメータ-値}: デフォルト値の指定 - 2 ${パラメータ:=値}: デフォルト値を代入する - 1 ${パラメータ=値}: デフォルト値を代入する - 2 ${パラメータ:+値}: パラメータが指定…

シェルで小数点以下を四捨五入して整数にするやり方のメモ。

シェルで四捨五入するやり方 awk を使って四捨五入する printf 関数を使って四捨五入する 参考サイト シェルで小数点以下を四捨五入して整数にするやり方のメモ。 シェルで四捨五入するやり方 シェルでたまに小数点以下を四捨五入して整数にするけどたまにす…

シェルの case でよく使うような気がするやつを軽くメモ。

シェルの case でよく使うような気がするやつ case の基本的な書き方 ?: 任意の1文字に合致 *: 任意の複数文字に合致 []: [ と ] で囲んでいる任意の文字に合致 [!]: [ と ] で囲んでいない任意の文字に合致 |: 複数のパターンのいずれかに合致 シェルの cas…

シェルのリダイレクトでわりと使うやつのメモ。

シェルのリダイレクト 標準出力のリダイレクト 標準エラー出力のリダイレクト 標準入力とかのリダイレクトで使うファイルディスクリプタ 標準入力のリダイレクト ヒアドキュメント 標準出力をファイルにリダイレクトして空っぽのファイルを作る 参考サイト …

curl コマンドでメッセージを Slack に post するメモ。

curl コマンドでメッセージを Slack に post シンプルなメッセージ ファイルのアップロード 参考ページ Slack はデスクトップアプリとかブラウザーで使っているけど CLI からメッセージを post したりファイルをアップロードしたりがちょいちょいあるので、c…

EBS ボリュームを EC2 インスタンスに追加と削除する方法。

EBS ボリュームの追加 追加する EBS ボリュームの作成 EBS ボリュームを EC2 インスタンスへアタッチ EBS ボリュームのファイルシステムの作成 EBS ボリュームのマウント EBS ボリュームの削除 EBS ボリュームのアンマウント EBS ボリュームのデタッチ EBS …

apk ファイルと ipa ファイルのバージョンを雑に確認するシェルスクリプトを書いた。

apk ファイルと ipa ファイルのバージョンを雑に確認するスクリプトを書いたときのメモ。 やりたいこと apk ファイルで知りたいのは android:versionName と android:versionCode の2つ。 このあたりの情報は aapt コマンドを使って apk ファイルから取得で…

Redash のバックアップとリストアのメモ。

サービスの運営で Redash を使っていて運営メンバーは結構カジュアルにクエリとかいじってもらっているので、バックアップとリストアといった運用上必須なところをどうしているかをメモしておく。 はじめに Redash は 公式の AMI を使って AWS 上に構築して…

AWS CLI で意図していないプロファイルを使ってしまうのを防止するコマンドを書いたメモ。

AWS CLI で意図していないプロファイルを使ってしまうのを防止するコマンドを書いたメモ。 動機 AWS CLI はプロファイルを --profile オプションや AWS_DEFAULT_PROFILE 環境変数で指定できるようになっていて AWS アカウントや IAM ユーザーが複数あっても…

ipa ファイルから CFBundleVersion を確認するワンライナーのメモ。

ipa ファイルから CFBundleVersion を確認するワンライナーのメモ。 したいこと ipa ファイル (iOS のアプリ) しかない状態で CFBundleVersion を確認したい。 中間ファイルとかは作りたくない。 確認する方法 CFBundleVersion は ipa ファイルのなかの Payl…

AWS の CloudWatch ロググループの保持期限を一括で設定するメモ。

AWS の CloudWatch ロググループの保持期限を一括で設定するメモ。 コンソールからたくさんのロググループの保持期限を手で変更していくのが面倒くさかったので AWS CLI で一括設定。 やったこと aws logs describe-log-groups コマンドで全ロググループを取…

シェルで '{' を使った複数ファイルの指定が地味にいろいろと便利。

シェルはワイルドカードを使ったり '[', ']' を使うと複数ファイルを指定することができる。 最近 '{', '}' を使って複数ファイルを指定できることを知ったのでメモ。 例 深い階層のファイルを操作するときとか地味に便利。 $ mkdir temp/{a,b} $ tree ~/tem…

ipa ファイルからプロビジョニングプロファイルの期限を確認するメモ。

ipa ファイルからプロビジョニングプロファイルの期限を確認するメモ。 したいこと ipa ファイル (iOS のアプリ) しかない状態でプロビジョニングプロファイルの有効期限を確認したい。 中間ファイルとかは作りたくない。 確認する方法 プロビジョニングプロ…

利用できる iOS シミュレーターをざっくり確認するときのメモ。

利用できる iOS シミュレーターをざっくり確認するときのメモ。Xcode の Devices & Simulators から確認できるけど、普段 Xcode を使わないのでコマンドラインからざっくり確認したい。こんなときは Xcode のコマンドラインツールである simctl コマンドを使…

Ubuntu 14.04 LTS のハードディスクイメージ zip ファイルの解凍に失敗したときのメモ

Virtual Box 用の Ubuntu 14.04 LTS のハードディスクイメージ zip ファイルの解凍に失敗したときのメモ。 ハードディスクイメージ zip ファイルの解凍に失敗 Ubuntu 公式サイトからハードディスクイメージをダウンロードして unzip したら解凍に失敗した。…

zsh を vi キーバインドでコマンド履歴検索

シェルも vi キーバインドで 普段 Vim を使っていると zsh も vi キーバインドで使いたいものです *1 zsh を vi キーバインドにするためには .zshrc 等に以下の一文を追加します。 bindkey -v コマンド履歴検索 さらに zsh のコマンド履歴検索を簡単に行うた…