로그에서 처음 발생하는 그룹 가져 오기

토마스 그레이프

각 그룹의 첫 번째 항목 만 필터링하려는 거대한 로그가 있습니다. 로그에서 "그룹"은 첫 번째 열의 타임 스탬프 이후의 모든 항목입니다.

예를 참조하십시오.

Mar 06 16:34:00.378;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:02.856;sample03;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:03.314;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:03.525;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:04.773;sample01;0.1.0-3af8c384;A6OZwO2e9wV6Z1PI;
Mar 06 16:34:04.997;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:05.241;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:06.546;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:06.671;sample08;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:07.394;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:07.569;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.120;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.371;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.534;sample06;0.1.0-3af8c384;tasghviiAoMrPfaZ;
Mar 06 16:34:09.662;sample04;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:09.822;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;

예상 결과는 다음과 같습니다.

Mar 06 16:34:00.378;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:02.856;sample03;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:04.773;sample01;0.1.0-3af8c384;A6OZwO2e9wV6Z1PI;
Mar 06 16:34:04.997;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:06.671;sample08;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:07.394;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.534;sample06;0.1.0-3af8c384;tasghviiAoMrPfaZ;
Mar 06 16:34:09.662;sample04;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;

타임 스탬프없이 고유 한 조합을 얻을 수있었습니다.

cut -d";" -f2- small_log.log | sort | uniq

하지만 타임 스탬프를 얻으려면 어떻게 다시 가입해야합니까? 나는 또한 그것이 sort | uniq수백만 줄로 잘 확장 될 것이라고 생각하지 않습니다 .

멘돈

나는 awk에서 이것을 할 것입니다.

$ awk -F';' '++seen[$2$3$4]==1' file 
Mar 06 16:34:00.378;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:02.856;sample03;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:04.773;sample01;0.1.0-3af8c384;A6OZwO2e9wV6Z1PI;
Mar 06 16:34:04.997;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:06.671;sample08;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:07.394;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.534;sample06;0.1.0-3af8c384;tasghviiAoMrPfaZ;
Mar 06 16:34:09.662;sample04;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;

awk무언가가 참으로 평가 될 때 의 기본 동작 은 현재 줄을 인쇄하는 것입니다. 표현식 ++seen[$1$2}은 두 번째 및 세 번째 필드를 연관 배열의 키로 seen만들고 값을 1 씩 증가시킵니다. 따라서이 ++seen[$2$3$4]==1두 번째 필드와 세 번째 필드의 조합을 처음 볼 때만 해당됩니다.

기본적으로 짧은 글쓰기 방법입니다.

awk -F';' '{ 
             seen[$2$3$4]++; 
             if(seen[$2$3$4] == 1){
                print
             }
            }' file 

또는를 사용하여 시도한대로 수행 할 수도 있습니다 sort. 당신조차 할 필요가 없습니다 cut단지 이야기, sort독특한 결과를 4 통해 필드 2에 정렬하고 다음으로 돌아 가기 :

$ sort -t';' -k2,4 -u file 
Mar 06 16:34:04.773;sample01;0.1.0-3af8c384;A6OZwO2e9wV6Z1PI;
Mar 06 16:34:02.856;sample03;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:04.997;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:09.662;sample04;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:07.394;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.534;sample06;0.1.0-3af8c384;tasghviiAoMrPfaZ;
Mar 06 16:34:00.378;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:06.671;sample08;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;

타임 스탬프별로 정렬해야하는 경우 sort다시 파이프로 연결하면 됩니다.

$ sort -t';' -k2,4 -u file  | sort
Mar 06 16:34:00.378;sample07;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:02.856;sample03;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;
Mar 06 16:34:04.773;sample01;0.1.0-3af8c384;A6OZwO2e9wV6Z1PI;
Mar 06 16:34:04.997;sample04;0.1.0-3af8c384;9azoPOnrcabk8Lfv;
Mar 06 16:34:06.671;sample08;0.1.0-3af8c384;WXHXdaYrHcVQYvLR;
Mar 06 16:34:07.394;sample05;0.1.0-3af8c384;JJYhwRHyTMNKM2DI;
Mar 06 16:34:09.534;sample06;0.1.0-3af8c384;tasghviiAoMrPfaZ;
Mar 06 16:34:09.662;sample04;0.1.0-3af8c384;Y2XdtYN2of7JUc4b;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

처음 두 그룹에서 처음 두 행 가져 오기

분류에서Dev

그룹의 처음 5 개 열 가져 오기

분류에서Dev

연락처에서 모든 그룹 이름 가져 오기

분류에서Dev

Outlook에서 한 그룹의 연락처 가져 오기

분류에서Dev

$ unwind를 사용하는 동안 오류가 발생하고 mongo에서 기능별로 해당 그룹 후에 ...?

분류에서Dev

Django : 외래 키로 그룹화 한 다음 그룹에서 최대 ID 가져 오기

분류에서Dev

반복되는 그룹에서 기간 시작 가져 오기

분류에서Dev

암호화 프로그램을 만들려고하는데 처음에 오류가 발생합니다.

분류에서Dev

Pig : 그룹에서 변수가 처음 발생합니까 (다른 변수를 집계하는 동안)?

분류에서Dev

Ruby에서 CSV 반복 및 열 값별로 그룹화하여 각 그룹의 마지막 줄 가져 오기

분류에서Dev

연결 값으로 MySQL 그룹화하고 각 그룹 내에서 첫 번째 ID (UUID) 가져 오기

분류에서Dev

Django는 템플릿에서 사용자 그룹 가져 오기

분류에서Dev

kendo Grid에서 그룹화하여 CellIndex 가져 오기

분류에서Dev

iPhone의 기본 연락처 앱에서 그룹 데이터를 가져 오지 않음

분류에서Dev

프로그램에서 Ruby 처리로 출력 가져 오기

분류에서Dev

SQL Server : 열별로 그룹화하고 첫 번째 그룹 가져 오기

분류에서Dev

jhipster 응용 프로그램을 처음 실행하는 동안 오류가 발생했습니다.

분류에서Dev

캡처 그룹 내의 각 항목 가져 오기

분류에서Dev

다음 프로그램에서 오류가 발생하지 않는 이유는 무엇입니까?

분류에서Dev

Mongodb-값별로 그룹화하고 개수 가져 오기

분류에서Dev

ForeignKey로 그룹화하고 전체 개체 가져 오기

분류에서Dev

외래 키로 그룹화하고 새 행 가져 오기

분류에서Dev

집계에서 가장 많이 발생하는 필드 값을 기준으로 그룹화

분류에서Dev

그룹 MySQL Java로 행 가져 오기

분류에서Dev

ACF 그룹 내에서 vars로 필드 가져 오기

분류에서Dev

JAVA로 OpenLDAP에서 사용자 그룹 가져 오기

분류에서Dev

Pandas 데이터 프레임에서 하위 그룹 순서 가져 오기

분류에서Dev

Recycler View 처음 4 개 항목을 그리드에서 가져온 다음 선형 항목으로 가져 오는 방법

분류에서Dev

라디오 그룹의 두 선형 레이아웃에서 라디오 버튼 가져 오기가 작동하지 않음

Related 관련 기사

  1. 1

    처음 두 그룹에서 처음 두 행 가져 오기

  2. 2

    그룹의 처음 5 개 열 가져 오기

  3. 3

    연락처에서 모든 그룹 이름 가져 오기

  4. 4

    Outlook에서 한 그룹의 연락처 가져 오기

  5. 5

    $ unwind를 사용하는 동안 오류가 발생하고 mongo에서 기능별로 해당 그룹 후에 ...?

  6. 6

    Django : 외래 키로 그룹화 한 다음 그룹에서 최대 ID 가져 오기

  7. 7

    반복되는 그룹에서 기간 시작 가져 오기

  8. 8

    암호화 프로그램을 만들려고하는데 처음에 오류가 발생합니다.

  9. 9

    Pig : 그룹에서 변수가 처음 발생합니까 (다른 변수를 집계하는 동안)?

  10. 10

    Ruby에서 CSV 반복 및 열 값별로 그룹화하여 각 그룹의 마지막 줄 가져 오기

  11. 11

    연결 값으로 MySQL 그룹화하고 각 그룹 내에서 첫 번째 ID (UUID) 가져 오기

  12. 12

    Django는 템플릿에서 사용자 그룹 가져 오기

  13. 13

    kendo Grid에서 그룹화하여 CellIndex 가져 오기

  14. 14

    iPhone의 기본 연락처 앱에서 그룹 데이터를 가져 오지 않음

  15. 15

    프로그램에서 Ruby 처리로 출력 가져 오기

  16. 16

    SQL Server : 열별로 그룹화하고 첫 번째 그룹 가져 오기

  17. 17

    jhipster 응용 프로그램을 처음 실행하는 동안 오류가 발생했습니다.

  18. 18

    캡처 그룹 내의 각 항목 가져 오기

  19. 19

    다음 프로그램에서 오류가 발생하지 않는 이유는 무엇입니까?

  20. 20

    Mongodb-값별로 그룹화하고 개수 가져 오기

  21. 21

    ForeignKey로 그룹화하고 전체 개체 가져 오기

  22. 22

    외래 키로 그룹화하고 새 행 가져 오기

  23. 23

    집계에서 가장 많이 발생하는 필드 값을 기준으로 그룹화

  24. 24

    그룹 MySQL Java로 행 가져 오기

  25. 25

    ACF 그룹 내에서 vars로 필드 가져 오기

  26. 26

    JAVA로 OpenLDAP에서 사용자 그룹 가져 오기

  27. 27

    Pandas 데이터 프레임에서 하위 그룹 순서 가져 오기

  28. 28

    Recycler View 처음 4 개 항목을 그리드에서 가져온 다음 선형 항목으로 가져 오는 방법

  29. 29

    라디오 그룹의 두 선형 레이아웃에서 라디오 버튼 가져 오기가 작동하지 않음

뜨겁다태그

보관