줄 끝에서 특정 문자로 분할 줄을 결합합니다.

줄 끝에서 특정 문자로 분할 줄을 결합합니다.

두 줄을 연결해야 해요. 그 중 하나는 전체 텍스트 예에서 이전 항목과 끝이 같습니다.

line1:hello
line2:goodbye.

다음과 같이 변경해야 합니다.

line1: hello goodbye.

이 거대한 텍스트의 모든 세 번째 줄(3,6,9,12,15,18,21,... 줄과 같은 3의 배수)을 제거해야 합니다.

이것이 내가 하고 싶은 일이다.

첫 번째 작업:

  • 모든 라인을 확인하세요

  • 마침표로 끝나면 .다음 줄로 이동합니다.

  • 마침표로 끝나지 않으면 .다음 줄을 현재 줄에 연결합니다.

각 줄에는 줄 번호가 없으며 일반 단어로 시작됩니다.

두 번째 작업

  • 처음부터 세 번째 줄마다 쓰레기이므로 제거해야 합니다.

  • 첫 번째 작업도 3번째 문장이 2줄로 나누어져 있는 부분이 있어서 꼭 해야 하는데, 먼저 2줄로 나누어진 줄을 완전히 연결한 후 두 번째 작업을 수행합니다.

저는 Windows 7을 사용하고 있습니다. notepad++와 ultraedit를 사용할 수 있습니다.

답변1

첫 번째 작업정규식 검색 및 바꾸기를 사용하여 Notepad++에서 수행합니다.

  • "검색" > "바꾸기..."를 엽니다.
  • "찾을 내용:"에 "([^\.])\r\n"(따옴표 제외)를 입력합니다.
    • 정규식의 의미: "."이 아닌 다른 것으로 끝나는 줄을 찾으세요.
    • 참고: 문서에 Linux 파일 끝이 있으면 "\r\n" 대신 "\n"만 사용해야 합니다.
  • "바꿀 내용:"으로 입력합니다 "\1 "(따옴표 제외, "\1" 뒤의 공백도 복사해야 함).
  • "검색 모드"에서 "정규식"을 선택합니다.
  • "모두 바꾸기"를 클릭하세요

입력:

hello
goodbye.
hello
hello
goodbye.
hello.
goodbye.

산출:

hello goodbye.
hello hello goodbye.
hello.
goodbye.

그만큼두 번째 작업더 긴 정규식으로 수행할 수 있습니다.

  • "검색" > "바꾸기..."를 엽니다.
  • "찾을 내용:"에 "(([^\r\n]*\r\n){2})[^\r\n]*\r\n"(따옴표 제외)를 입력합니다.
    • 정규식의 의미: 세 줄로 구성된 블록을 찾습니다.
    • 참고: 문서에 Linux 파일 끝이 있으면 "\r\n" 대신 "\n"만 사용해야 합니다.
  • "바꾸기:"로 "\1"(따옴표 제외)를 입력합니다.
  • "검색 모드"에서 "정규식"을 선택합니다.
  • "모두 바꾸기"를 클릭하세요

입력:

hello goodbye.
hello hello goodbye.
sdlfj sdgf.
hello.
goodbye.
(/%&/$&=)?)=´?&%.
goodbye goodbye.
bye.
sldfjsdökl.
hello.

산출:

hello goodbye.
hello hello goodbye.
hello.
goodbye.
goodbye goodbye.
bye.
hello.

메모: 두 예 모두 후행 공백이 없다고 가정했습니다. 있는 경우, 예를 들어 정규식 대체(위와 같이)를 (인용 부호 제외) "\s*$"로 먼저 제거해야 합니다 .""

관련 정보