#author("2017-03-05T19:48:32+09:00","","")
#navi(../)
* エスケープカラーシーケンスをテキストから除く方法 [#wc1f3dd8]
grep --colorなどのオプションで出力されたテキストをファイル化したとき、エスケープシーケンスで~
色が含まれた状態で保存された場合の対処方法です。~
尚、本資料は以下のサイトを参考にさせていただきました。
-[[ANSI カラーシーケンスを除去するコマンド>http://d.hatena.ne.jp/kitokitoki/20111225/p5]]
//#htmlinsert(linux_ads_top.html)
#contents
-[[ANSI カラーシーケンスを除去するコマンド>http://d.hatena.ne.jp/kitokitoki/20111225/p5]]
* 参考サイト [#w0dc227a]
* sedを使ってカラーシーケンスを削除する [#fd08985c]
上記でも記述したサイトのsedコマンドを紹介させていただきます。~
以下のようにすれば、カラーシーケンスを含んだテキストファイルがからカラーシーケンスを除去することができます。
cat カラーシーケンスを含んだテキストファイル | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > 出力ファイル名
* 実際にカラーシーケンスを含んだファイルで試してみる [#mac0b08c]
実際にカラーシーケンスを含むファイルで実行してみます。
** カラーシーケンスを含むファイルの確認 [#rb592e40]
以下のスクリーンショットの通り、catすると色がついて表示されます。
#ref(01.png)
#br
また、vi(vim)でファイルを開くとエスケープシーケンスが含まれているのが確認できます。
#ref(02.png)
#br
** sedでカラーシーケンスを除去する [#g9b7d2cc]
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)で開くと除去されているのが確認できます。
#ref(03.png)
* aliasなどに登録すると便利 [#d71678a8]
上記のsedコマンドを以下の様にaliasに登録すると便利に使用できます。
alias color_strip='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"'
以上、sedを使ってカラーシーケンスを削除する方法でした。
//#htmlinsert(linux_ads_btm.html)