bash

tarコマンドのオプションが複雑すぎて覚えらない時は,"tar --help" だけ覚えよう

この記事を読みました.zenn.devこういう時は "--help” オプションを覚えておきましょう. 困ったら "tar --help" ”--help"を指定してtarコマンドを実行します. $ tar --help 使用方法に関するヘルプ(簡易的なマニュアル)が表示されます.先頭を引用する…

シェルスクリプトでターミナルの大きさを調べる方法

bashなどのシェルでターミナルのサイズを取得する方法をまとめます おすすめは tput コマンド tputコマンドを使うのが無難です tput cols でターミナルの横幅 tput lines でターミナルの高さ となります.単位はどちらも文字数です 別解1: $COLUMS と $LIN…

3月1日の一日前を計算する方法

いろんな言語・コマンドラインで,日付の足し算・引き算をする方法をまとめます.例として,3月1日の1日前を計算を考えます.この計算は,うるう年があるので面倒です.たとえば 2021年3月1日の前日は 2月28日 2020年3月1日は前日は 2月29日 となりますが…

bashで正規表現を使う方法

bashのシェルスクリプトで正規表現を使う方法をまとめます 正規表現でパターンマッチ bash の演算子 "=~" を使います例 x=1234 if [[ $x =~ ^[0-9]+$ ]]; then echo "x is number" else echo "x is not number" fi 正規表現で部分文字列を取り出す マッチし…

ディレクトリを再帰的に辿ってファイルのチェックサム(md5sum)を計算する方法

特定のディレクトリ以下にある全てのファイルについて md5sum を計算するワンライナーです find -type f -print0 | xargs -0 md5sum > md5sum.txt コマンドの意味は find で再帰的にディレクトリを探索して 全てのファイル名をstdoutに出力 (-type f) xargs …

bash で乱数を使う

2行でまとめると bash で乱数が必要な場合はシェル変数 RANDOM を参照します 生成される乱数の値域は,0から32767,分布は一様分布,になります 以下詳細. シェル変数 RANDOM bash で乱数が必要な場合はシェル変数 RANDOM を参照します echo $RANDOM シェル…

pipで入れたパッケージを一括更新する

python のパッケージをコマンド一行で最新版にアップデートする方法です コマンド 普段 sudo を使わずに,--user つけてpipを実行している場合 $ pip3 list --format freeze --outdated | while IFS='==' read pkg dummy; do pip3 install --user --upgrade …

シェルスクリプトでエラーメッセージに色をつける

bash や sh のシェルスクリプトでエラーメッセージや警告メッセージをカラフルに色付けして表示するコードを公開します.スクリプトの雛形にどうぞ.なかなか便利です. スクリプトの雛形 #!/bin/bash # Colorize output only if stdout referers to termina…

bash と getopt の連携(2018年バージョン).

bash で getopt を使う雛形.エラー処理をちゃんと書いたバージョンです.実行時のエラー,実装上のバグ,どちらも正しく検出&対処できます. #!/bin/bash usage() { cat<