Notepad++ 특정 문자열을 제외한 나머지 문자열 삭제하는 방법

소프트웨어

필자의 경우 notepad++를 사용해서 시스템이나 서버의 로그 분석을 하는 일이 간혹 있는데요.

로그 분석을 할 때 특정 문자열이 포함된 패턴을 추출하고 싶은 경우, notepad++의 검색 기능을 이용해 해당 문자열을 검색하고 따로 복사해서 새 문서에 붙여넣기 하는 식으로 추출이 가능합니다.

다만 이 방식은 원시적인 방법으로 효율성이 상당히 떨어지기 때문에 특정 문자열이 포함된 라인만 문서에 남게 하려면 반대로 특정 문자열을 제외한 나머지 라인은 모두 삭제하면 됩니다.

Notepad++에서 정규 표현식(Regex)을 사용해 특정 문자열을 검색하고, 조건에 맞는 열을 제외한 나머지 줄은 삭제해서 필요한 문자열만 남길 수 있는 방법에 대해 알아보겠습니다.

1단계 : 특정 문자열을 제외한 나머지 열을 선택하는 정규 표현식 사용

특정 문자열을 제외한 나머지 열을 선택하는 정규 표현식 사용 1
  1. Notepad++에서 편집할 파일을 불러옵니다.
  2. 찾기 메뉴를 클릭한 다음 바꾸기를 선택하거나 Ctrl + H 단축키를 누릅니다.
특정 문자열을 제외한 나머지 열을 선택하는 정규 표현식 사용 2
  1. 찾기 모드를 정규 표현식으로 변경합니다.
  2. 찾을 내용에 아래 정규 표현식을 참조해 찾을 문자열을 입력합니다.
    • ^((?!찾을문자열).)*$
  3. 바꿀 내용은 빈 칸으로 둔 상태에서 모두 바꾸기 버튼을 클릭합니다.
특정 문자열을 제외한 나머지 열을 선택하는 정규 표현식 사용 3
  1. 정규 표현식에서 입력한 문자열이 포함된 줄만 남고 조건에 부합하지 않은 문자열은 모두 빈 줄이 된 것을 확인할 수 있습니다.

필자의 경우 예시로 ^((?!google).)*$ 정규 표현식을 사용해 웹 서버 로그에서 google 접속을 제외한 나머지 문자열을 모두 삭제해 봤습니다.

2단계 : 정규 표현식 조건에 부합하지 않는 나머지 문자열의 빈 줄 삭제

특정 문자열이 포함된 줄만 남고 나머지 문자열은 모두 빈 줄로 남아있어서 가독성이 떨어집니다. 마찬가지로 정규 표현식을 사용해서 빈 줄을 제거할 수 있습니다.

정규 표현식 조건에 부합하지 않는 나머지 문자열의 빈 줄 삭제
  1. 문서의 1번째 줄을 클릭한 상태에서 찾기 > 바꾸기를 실행합니다.
  2. 찾기 모드를 정규 표현식으로 변경합니다.
  3. 찾을 내용에 아래 정규식을 입력합니다.
    • ^\r?\n
  4. 바꿀 내용은 빈 칸으로 둔 상태에서 모두 바꾸기 버튼을 클릭합니다.
정규 표현식 조건에 부합하지 않는 나머지 문자열의 빈 줄 삭제 2
  1. 빈 줄이 모두 제거된 것을 확인합니다.

Notepad++에서 특정 문자열을 제외한 나머지 열을 삭제하고, 삭제 시 생성된 빈 줄을 모두 제거해서 원하는 문자열이 포함된 줄만 추출할 수 있게 됩니다.

텍스트 문서에서 필요한 문자열만 필터링 하는 효과가 있어서 데이터 분석을 할 때 활용도가 높으니 활용해 보시길 바랍니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.