색상 데이터도 포함된 열을 정렬하는 방법은 무엇입니까?

색상 데이터도 포함된 열을 정렬하는 방법은 무엇입니까?

응답 시간 네 번째 필드를 기준으로 정렬하려는 로그 파일이 있습니다.

GET /api/user/john 200 0.194 ms - 7307

vi그러나 여기에는 색상 레이블이 포함되어 있습니다 . 출력은 다음과 같습니다 .

^[[0mGET /api/user/john ^[[32m200 ^[[0m0.194 ms - 7307^[[0m

이를 수행하는 쉬운 방법이 있습니까?

답변1

  1. 정렬할 필드를 추출하고(일반적으로 또는 cut사용 ) 해당 형식 이스케이프 시퀀스를 제거합니다. 2부의 스크립트는 다음에서 찾을 수 있습니다.sedawk스크립트 출력에서 ​​제어 문자(콘솔 코드/색상 포함) 제거. uncolor다음을 사용하여 이러한 스크립트 중 하나를 나타냅니다.
  2. 얻은 결과를 원래 결과( paste)와 비교합니다. 데이터에 표시되지 않는 구분 기호를 사용하여 정렬합니다.
  3. 유형.
  4. 정렬 키를 제거합니다.

예를 들어 필드가 탭으로 구분된 경우:

<input-file.txt cut -f 4 | uncolor |
paste - input-file.txt |
sort |
cut -f 2-

관련 정보