応答時間 4 番目のフィールドに基づいてソートするログファイルがあります。
GET /api/user/john 200 0.194 ms - 7307
vi
ただし、これにはカラーラベルが含まれています。出力は次のとおりです。
^[[0mGET /api/user/john ^[[32m200 ^[[0m0.194 ms - 7307^[[0m
これを行う簡単な方法はありますか?
答え1
- ソートするフィールドを抽出し(通常または
cut
使用)、対応する型エスケープシーケンスを削除します。パート2のスクリプトは以下にあります。sed
awk
スクリプト出力から制御文字(コンソールコード/色付き)を削除する。uncolor
以下を使用して、これらのスクリプトのいずれかを示します。 - 得られた結果を元の結果(
paste
)と比較します。データに表示されない区切り文字を使用してソートします。 - タイプ。
- ソートキーを削除します。
たとえば、フィールドがタブで区切られている場合:
<input-file.txt cut -f 4 | uncolor |
paste - input-file.txt |
sort |
cut -f 2-