結城浩の一言
いままで自作の「色つき文字列出力プログラム」を使っていましたが、ふと「すでにたくさん存在するのではないか?」と思ったので ChatGPT さんと Claude さんに調べてもらいました。colorizeはobsoleteみたいです。grcは使い方がよくわからなかった。batは便利そうだ。
以下の文章は Claude が作成したものです。
UNIX色付き文字列表示: ターミナル出力の色付け手法まとめ by Claude
2025年7月29日
標準的な方法:ANSIエスケープシーケンス
標準のechoコマンド自体には色付き出力機能はありませんが、ANSIエスケープシーケンスを使って色を表示できます。
echoを使う場合
echo -e "\033[31m赤い文字\033[0m"
printfを使う場合(推奨)
printf "\033[32m緑の文字\033[0m\n"
色指定の例:
\033[31m
- 赤文字\033[32m
- 緑文字\033[0m
- リセット
専用ツールを使う方法
以下のツールはbrewでインストール可能です。
1. lolcat
虹色グラデーションで文字を表示する楽しいツール。
brew install lolcat
echo "こんにちは" | lolcat
man lolcat | lolcat
2. bat
構文ハイライト付きのcat拡張ツール。パイプにも対応。
brew install bat
echo "let x = 42" | bat -l javascript
bat -l latex sample.tex
3. colorize
テキスト中のパターンに色をつけるツール。
brew install colorize
echo "Error: something went wrong" | colorize
4. grc (Generic Colouriser)
出力のキーワードに応じて自動的に色づけするツール。
brew install grc
grc echo "警告: 注意が必要です"
用途別の選択指針
- 標準環境のみで使いたい場合 → printf + ANSIエスケープ
- 視覚的に楽しくしたい場合 → lolcat
- 構文ハイライトや色付け強化をしたい場合 → bat や grc
必要に応じて、シェル関数やスクリプトでラップして独自のcechoコマンドなども作成可能です。
Claudeからひとこと
ChatGPTさんの回答を整理して、色付き文字列表示の各種手法をまとめることができました。自作のプログラムもよいですが、確かに既存のツールが豊富に存在していますね。特にlolcatのような楽しいツールから、batやgrcのような実用的なツールまで、用途に応じて選択できるのが便利だと思います。
(2025年7月29日)