グループ内でのお金の立替えを精算するためのツールを作成しました。新しい精算シートを作成すると、固有のURLが作られるため、そのURLをグループのメンバーに渡すことで情報の共有ができます。
グループ内でのお金の立替えを精算するためのツールを作成しました。新しい精算シートを作成すると、固有のURLが作られるため、そのURLをグループのメンバーに渡すことで情報の共有ができます。
UNIXにおいて、ファイル内の文字列の置換にはsedコマンドを利用することができます。例えば、fruits.txtファイル内の文字列AppleをOrangeに置換するには、以下のように行います。
$ sed -i".bkp" -e "s/Apple/Orange/g" fruits.txt
ここで、パラメータ「-i」は対象のファイルを直接書き換えることを指定していますが、直後に文字列を指定することで、その文字列がファイル名の後ろに付いたバックアップファイル(fruits.txt.bkp)を作成させています。
複数のファイルに対して同時に処理を行いたい場合は、findとxargsコマンドをsedと組み合わせます。findはファイルを検索するためのコマンドで、xargsは標準入力から渡された値を引数として任意のコマンドを実行するためのコマンドです。例えば、カレントディレクトリに存在する全てのファイル中のAppleをOrangeに置換するには、以下のように行います。
$ find . -maxdepth 1 -type f | xargs sed -i".bkp" -e "s/Apple/Orange/g"
PS1という環境変数の値を変更することで、Bashのプロンプトの表示を変更することができます。例えば
[user@host:/path/to/current_directory]$
という表示にしたければ
$ export PS1="[\u@\H:\w]$ "
と設定します。ただ、毎回このコマンドを入力するのは大変なので、ホームディレクトリにある.bashrcに書き込んで、ログイン時に自動的に設定されるようにしましょう。
$ vim ~/.bashrc export PS1="[\u@\H:\w]$ "
PS1の設定値の中で使用できる特殊文字は以下のとおりです。
| \a | ASCIIのベル文字 (07) |
| \d | “曜日 月 日” という形式の日付 (例: “Tue May 26”) |
| \D{format} | formatがstrftime(3)に渡され、その結果がプロンプト文字列に挿入される。formatが空の場合には、ロケールで指定された時刻表記になる。(ブレースは必要) |
| \e | ASCIIのエスケープ文字 (033) |
| \h | ホスト名のうち最初の「.」までの部分 |
| \H | ホスト名 |
| \j | シェルによって現在管理されているジョブの数 |
| \l | シェルの端末デバイスのベース名 |
| \n | 改行 |
| \r | 復帰 |
| \s | シェルの名前。つまり$0のベース名 (最後のスラッシュ以降の部分) |
| \t | 24 時間制のHH:MM:SS形式の現在の時刻 |
| \T | 12 時間制のHH:MM:SS形式の現在の時刻 |
| \@ | 12 時間制のam/pm形式の現在の時刻 |
| \A | 12 時間制のHH:MM形式の現在の時刻 |
| \u | 現在のユーザのユーザ名 |
| \v | bashのバージョン (例: 2.00) |
| \V | bashのリリース。バージョンにパッチレベルを加えたもの (例 : 2.00.0) |
| \w | 現在の作業ディレクトリ。$HOMEの部分はチルダに短縮される。(PROMPT_DIRTRIMの値が適用される。) |
| \W | 現在の作業ディレクトリのベース名$HOMEの部分はチルダに短縮される。 |
| \! | このコマンドの履歴番号 |
| \# | このコマンドのコマンド番号 |
| \$ | 実効UIDが0の場合に#、それ以外の場合は$ |
| \nnn | 8進数nnnに対応する文字 |
| \\ | バックスラッシュ |
| \[ | 非表示文字のシーケンスの開始。これを使うと、プロンプト中に端末の制御シーケンスを埋め込むことができる。 |
| \] | 非表示文字のシーケンスを終了する。 |
また、色を変えることもできます。色を変えたい文字列を\[\e[<色>m\]と[\e[m\]で囲みます。例えば、ユーザ名を赤くしたい場合は、
$ export PS1="[\[\e[31m\]\u\[\e[m\]@\H:\w]$ "
とします。色はANSIカラーシーケンスに従います。
| 30 | 黒 |
| 31 | 赤 |
| 32 | 緑 |
| 33 | 黄色 |
| 34 | 青 |
| 35 | 紫 |
| 36 | 水色 |
| 37 | 白 |
また、色の前か後ろに、セミコロンで区切って一桁の数字を入れることで、文字の装飾を指定することができます。
$ export PS1="[\[\e[31;1m\]\u\[\e[m\]@\H:\w]$ "
| 0 | なし |
| 1 | 太字 |
| 4 | 下線 |
| 5 | 点滅 |
| 7 | 反転 |
私のお気に入りは次の設定です。
$ export PS1="[\[\e[01;31m\]\u\[\e[m\]@\[\e[01;33m\]\H\[\e[m\]:\[\e[01;36m\]\w\[\e[m\]]$ "
Tajitoolsに二つのタイムゾーン間で時刻を変換するツールを追加しました。今、ニューヨークは何時だろう?とかを調べることができます。
UNIXにおいて、最終更新後一定期間経った古いファイルを削除するには、「find」コマンドを「-exec」パラメータと一緒に利用します。
$ find <Directory> -maxdepth 1 -mtime +<Days> -exec rm -f {} \;
各パラメーターの意味は以下のとおりです。
| <Directory> | 削除したファイルを含むディレクトリを指定します。 |
| -maxdepth 1 | 1を設定することで指定したディレクトリ直下のファイルのみを検索の対象にします。 |
| -mtime +<Days> | 最終更新日から数えて、指定した日数を経過したファイルを対象にするという指定です。 |
| -exec rm -f {} \; | 検索の結果見つかったファイルを削除します。 |
Tajitoolsに文字数や改行数等を数えるツールを追加しました。
Tajitoolsにラップタイムも測れるストップウォッチを追加しました。
Javascriptでハッシュの結合を行う関数は標準で存在しないようです。hash1にhash2を結合するには、次のようにやります。
var hash1 = {'us': 'USD', 'jp': 'JPY'};
var hash2 = {'cn': 'CNY'};
for (var key in hash2) {
hash1[key] = hash2[key];
}
Tajitoolsに時計ツールを追加しました。表示形式とサイズを指定できる、単純な時計です。
ソフトウェア開発や日々の業務において、役に立ちそうなWebツールを提供するサイトToolbaseをオープンしました。少しずつ新しいツールを追加していきます。