저번 시간에는 notepad++를 이용해서, diff를 사용해 보는 것이였습니다. 이번에는 여러 패턴들을 찾고 한번에 바꾸는 것도 해 보도록 하겠습니다. 당연하게도, 패턴들을 찾는 것이니, 공식 문서의 이 부분이 유용할 듯 싶네요.

 


 먼저 CR LF부터 보도록 하겠습니다. 리눅스하고, 윈도우하고 개행 처리 방식이 다릅니다. 윈도우는 LF 앞에 CR이 붙는데, 리눅스는 그렇지 않습니다.

 

 기호 보기에서 특수 문자 표시에 체크를 해 주겠습니다.

 

 

 그러면 1 뒤에 CR LF가 있고, 2 뒤에 또 CR LF가 있어요. CR은 캐리지 리턴이라 합니다. \r로 표현이 됩니다. 이것이 몇 개나 있는지 찾고 싶습니다.

 

 

 찾기에서 찾기 모드를 정규 표현식을 선택해 줍시다. 그 다음에 \r\n을 입력하고 일치하는 개수를 누르시면 10곳이 일치한다고 나옵니다.

 

 이는 개행이 10번 들어가있기 때문입니다.

 

 

 바꾸기 탭에서는 패턴이 찾아지면, 어떤 내용으로 바꿀 지 입력합니다. 이것은 \r\n을 \n으로 바꾸는 것인데요. 모두 바꾸기를 눌러 봅시다.

 

 CR LF가 LF로 바뀌었습니다.

 

 

 파일에서 찾기와 Find in Projects가 생각보다 강력한 기능인 걸로 보입니다. 이 중에 파일에서 찾기 탭을 보겠습니다. 이것을 보시면, 디렉토리를 넣는 것이 있는데요. 현재와 같은 폴더 체크 박스가 있고, 모든 하위 폴더 포함 체크 박스가 있고, 숨김 폴더 포함이 있습니다.

 

 저는 현재와 같은 폴더에 체크 했는데요. 디렉토리를 C:\Users\chokw에 있으므로, 이 폴더 안에 있는 파일들을 모두 탐색해서, \r\n 패턴이 있는 것을 모두 \n으로 바꿉니다. chokw 밑에 있는 Postman 밑에 있는 파일에는 적용되지 않습니다. chokw 밑에 있는 폴더는 제가 적은 디렉토리와는 다르기 때문입니다. 만약에, chokw 밑에 있는 모든 파일에 있는 파일을 재귀적으로 찾으려면, 모든 하위 폴더 포함에 체크하시면 됩니다.

 

 3.txt도 chokw 안에 있었는데요. 적용하고 나니, 123 다음에 CR LF가 있었던 것이 없어졌음을 알 수 있습니다.

 


 이제 간단한 예제를 몇 개 더 보면서 마무리 지어 보겠습니다. 파일에서 수를 찾으려고 합니다.

 

 그러면 패턴에 [0-9]+을 입력하시면 됩니다. 이것은 0부터 9까지, 즉 숫자가 하나 이상 나타나는 패턴을 의미합니다. 숫자가 하나 이상 연속해서 나타나면 수입니다. 예를 들자면 2, 3, 50 이런 것들이 이에 속합니다.

 

 7개나 나오네요. 그런데 -5나 +30과 같이 앞에 부호가 붙은 건 찾지 못합니다. (물론 부호 빼고 나머지 부분은 찾겠지만요.)

 

 1.txt에 2개의 줄을 추가하였습니다. -5, +5, -15, -10이 추가되었습니다. +나 -는 부호로만 쓰인다고 하고, 수를 찾는다고 하면 이 부분까지 고려를 해야 할 겁니다. 그럴려면 정규 표현식에 [+-]{0,1}[0-9]+ 이렇게 적으면 됩니다.

 

 +5와 -15와 -10도 잘 찾는 것을 볼 수 있습니다. regex는 이것만 하는 게 아니라 캡쳐를 해서 가공할 때도 널리 쓰이는데요. 이 부분은 따로 공부해 보시면 좋을 듯 싶습니다.