ログファイルがあり、応答時間の4番目のフィールドに従ってソートしようとしています。
GET /api/user/john 200 0.194 ms - 7307
ただし、色タグが含まれています。以下がvi
の出力です。
^[[0mGET /api/user/john ^[[32m200 ^[[0m0.194 ms - 7307^[[0m
これを行う簡単な方法はありますか?
cut
、sed
またはawk
を使用)、そのフォーマットエスケープシーケンスを取り除きます。 2番目の部分のスクリプトは スクリプト出力からの制御文字(コンソールコード/色を含む)の削除 にあります。以下のuncolor
を使用して、これらのスクリプトの1つを表します。paste
)と照合します。並べ替えるには、データに表示されない区切り文字を使用します。たとえば、フィールドがタブ区切りの場合:
<input-file.txt cut -f 4 | uncolor |
paste - input-file.txt |
sort |
cut -f 2-