LoginSignup
6
6

More than 5 years have passed since last update.

カラー表示される標準出力からカラーを除く

Last updated at Posted at 2017-11-05

方法

カラー表示される標準出力からカラーを除く

コマンド | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"

出力をパイプで繋いで色を表してる[33mとかをsedで消す。

alias登録

zsh

~/.zshrcにグローバルエイリアスとして登録

.zshrc
% alias -g I='| sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"'

bash

bash派の人は~/.bashrcにaliasを登録

.bashrc
$ alias ic='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"' 

zshで% ls --color Iやbashで$ ls --color | icなどと打ってみて確かめてください。

補足

よく設定されているalias

よくあるshell上では最初から

alias ls='ls --color=auto'

などと最初からカラー表示で設定してあると思うので、わざわざ--colorなんてオプションはいらないのですが念の為。

aliasの回避としてバックスラッシュ

以上のようなaliasが登録されている環境でlsをカラー表示したくないならlsの前にバックスラッシュをつけて\lsとすればaliasを無視して本来のlsが使えます。
ここでわざわざlsを例にあげているのは単純にみんな知っているコマンドだからです。

今回この記事を書くキッカケとなった自作コマンド([git ailias]本日のまとめログと最後のタグからのコミットログ、その他参照)がカラー表示で、lsのようにcolorオプションがあるわけではないので、一時的にカラー表示を無効化したい時にと思って何か方法がないか調べたまででした。

参考

参考というか丸パクリ: Stack over flow - Removing colors from output
日本語記事で存在しなかったのでここにメモしておきます。

以上

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6