두 줄을 연결해야 해요. 그 중 하나는 전체 텍스트 예에서 이전 항목과 끝이 같습니다.
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*$"
로 먼저 제거해야 합니다 .""