このエントリーをはてなブックマークに追加


エスケープカラーシーケンスをテキストから除く方法

grep --colorなどのオプションで出力されたテキストをファイル化したとき、エスケープシーケンスで
色が含まれた状態で保存された場合の対処方法です。
尚、本資料は以下のサイトを参考にさせていただきました。


参考サイト

sedを使ってカラーシーケンスを削除する

上記でも記述したサイトのsedコマンドを紹介させていただきます。
以下のようにすれば、カラーシーケンスを含んだテキストファイルがからカラーシーケンスを除去することができます。

cat カラーシーケンスを含んだテキストファイル | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > 出力ファイル名

実際にカラーシーケンスを含んだファイルで試してみる

実際にカラーシーケンスを含むファイルで実行してみます。

カラーシーケンスを含むファイルの確認

以下のスクリーンショットの通り、catすると色がついて表示されます。

01.png
 

また、vi(vim)でファイルを開くとエスケープシーケンスが含まれているのが確認できます。

02.png
 

sedでカラーシーケンスを除去する

sakura@cygwin ~$ cat include_esc_color.txt | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > out.txt

sakura@cygwin ~$ cat out.txt
2016-04-12      Windows 500
2016-05-03      macOS   700
2016-05-03      Linux   440
2016-05-04      *BSD    1000
2016-05-24      Android 300
2016-06-04      iOS     80

vi(vim)で開くと除去されているのが確認できます。

03.png

aliasなどに登録すると便利

上記のsedコマンドを以下の様にaliasに登録すると便利に使用できます。

alias color_strip='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"'

以上、sedを使ってカラーシーケンスを削除する方法でした。



添付ファイル: file03.png 742件 [詳細] file02.png 763件 [詳細] file01.png 795件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-05 (日) 19:49:56