エスケープカラーシーケンスをテキストから除く方法 †grep --colorなどのオプションで出力されたテキストをファイル化したとき、エスケープシーケンスで 参考サイト †sedを使ってカラーシーケンスを削除する †上記でも記述したサイトのsedコマンドを紹介させていただきます。 cat カラーシーケンスを含んだテキストファイル | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > 出力ファイル名 実際にカラーシーケンスを含んだファイルで試してみる †実際にカラーシーケンスを含むファイルで実行してみます。 カラーシーケンスを含むファイルの確認 †以下のスクリーンショットの通り、catすると色がついて表示されます。 また、vi(vim)でファイルを開くとエスケープシーケンスが含まれているのが確認できます。 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)で開くと除去されているのが確認できます。 aliasなどに登録すると便利 †上記のsedコマンドを以下の様にaliasに登録すると便利に使用できます。 alias color_strip='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"' 以上、sedを使ってカラーシーケンスを削除する方法でした。 |