grep을 사용하여 고유한 항목을 찾습니다.

grep을 사용하여 고유한 항목을 찾습니다.

이 유형의 텍스트 파일이 있고 해당 문자열이 포함된 줄을 찾아서 Validating Classification보고된 오류만 가져옵니다. 가능한 오류 유형을 모르겠습니다.

입력 파일:

201600415 10:40 Error Validating Classification: error1
201600415 10:41 Error Validating Classification: error1
201600415 10:42 Error Validating Classification: error2
201600415 10:43 Error Validating Classification: error3
201600415 10:44 Error Validating Classification: error3

결과물 파일

201600415 10:40 Error Validating Classification: error1
201600415 10:42 Error Validating Classification: error2
201600415 10:43 Error Validating Classification: error3

이를 달성하기 위해 grep, 파이프 및 기타 명령을 사용할 수 있습니까?

답변1

타임스탬프를 폐기해야 하지만 "sort --unique"와 함께 "grep"을 사용하면 이를 수행할 수 있습니다.

grep --only-matching 'Validating Classification.*' | sort --unique

따라서 grep -o정규식과 일치하는 행의 일부만 표시됩니다. 따라서 .*모든 항목을 포함 하려면 include가 필요합니다.뒤쪽에"분류 확인"이 일치함). 그런 다음 오류 목록이 있으면 사용할 수 있습니다.sort -u고유한 오류 목록만 가져옵니다.

답변2

데이터가 test 파일에 있다고 가정하고 이 명령을 사용할 수 있습니다.

uniq -f 2 <test

답변3

나는 awk를 선택할 것이다

awk -F: '{ if (!a[$3]++ ) print ;}' file
  • -F:목적: 구분 기호로
  • $3모드 이후입니다:
  • !a[$3]++처음 발생하는 경우에만 true가 되도록 보장합니다.

관련 정보