이맥스에서 정규식을 이용해 텍스트를 검색 후, 일부 텍스트만 변경하려면?

예를 들어 영어알파벳2개 뒤에 나오는 숫자0을 숫자1로 바꾸는 경우에 활용할 수 있는 방법

이맥스에서 정규 표현식을 이용해 특정 패턴을 검색하고, 일부 텍스트를 변경하려면 replace-regexp 명령을 사용할 수 있습니다. 아래의 단계를 따라하세요:

  1. 검색할 텍스트 정의: 영어 알파벳 2개 뒤에 나오는 숫자 0을 대체하려면, 정규 표현식은 다음과 같습니다: \([a-zA-Z][a-zA-Z]\)0

  2. replace-regexp 사용:

    • 명령어 실행: =M-x replace-regexp=를 입력한 후 Enter.
    • 검색할 패턴 입력: \([a-zA-Z][a-zA-Z]\)0 입력 후 Enter.
    • 바꿀 내용 입력: =\1=를 입력한 후 다음에 변경할 숫자 =1=를 입력하여 =\1=으로 첫 번째 그룹(두 개의 알파벳)을 포함시키고, 후에 1을 붙입니다. 즉, 그냥 =\11=을 입력합니다.
  3. 변경 적용: Enter를 눌러서 적용합니다.

이제 영어알파벳 2개 뒤에 있는 숫자 0이 숫자 1로 변경되었습니다.

이맥스 Evil에서 VIM 스타일로 위의 작업을 하려면?

Evil 모드에서 Vim 스타일로 위의 작업을 수행하려면 :s 명령을 사용할 수 있습니다. 아래 단계를 따라주세요:

  1. 레인지 지정: 범위를 선택하거나 파일 전체에서 변경할 경우 범위를 지정하지 않아도 됩니다.

  2. 명령 실행: 아래와 같은 형식의 명령을 입력합니다:

       :%s/\([a-zA-Z][a-zA-Z]\)0/\11/g
    • :%s는 전체 파일에서 검색 및 대체를 의미합니다.
    • \([a-zA-Z][a-zA-Z]\)0는 두 개의 알파벳 뒤에 오는 0을 찾는 정규 표현식입니다.
    • =\11=은 첫 번째 그룹(알파벳)과 1을 결합한 것입니다.
    • /g는 한 줄에 여러 번 일치하는 경우 모두 변경하겠다는 의미입니다.
  3. Enter 키: 명령을 실행하기 위해 Enter 키를 눌러 완료합니다.

이제 해당 패턴의 모든 인스턴스가 변경됩니다.

Related-Notes

References