Notepad++에서 한 줄씩 걸러서 시작 부분에 텍스트를 추가하세요.

Notepad++에서 한 줄씩 걸러서 시작 부분에 텍스트를 추가하세요.

내가 하고 싶은 일은:

  • 1, 3, 5 등의 줄 시작 부분에 추가합니다 <title>.(메모장++ 파일의 경우 수백 줄)
  • </title>1, 3, 5행 등의 끝에 추가하세요 .

그 다음에:

  • <link>짝수 줄의 시작 부분에 추가합니다 (예: 2, 4, 6, 8행 등...).
  • </link>짝수 줄 끝에 추가합니다 (예: 2, 4, 6, 8행 등...).

답변1

개인적으로 나는 간단한 Perl/Python 스크립트를 작성하여 이 작업을 수행하는 것이 훨씬 더 쉬울 것이라고 생각하지만 여기에 Notepad++에서 이를 수행할 수 있는 방법이 있습니다. 몇 가지 샘플 데이터로 시도해 보았는데 원하는 대로 작동했습니다.

  • 편집하려는 파일을 엽니다.
  • 파일의 첫 번째 줄의 시작 부분으로 이동
  • 메뉴에서 매크로 --> 기록 시작 옵션을 클릭하세요.
  • (제목) 삽입, 끝 버튼을 눌러 줄 끝으로 이동, (/제목) 삽입
  • 홈 버튼을 눌러 줄의 시작 부분으로 이동
  • 아래쪽 버튼을 눌러 2번 라인으로 이동하세요.
  • 삽입(링크), 끝 버튼을 눌러 줄 끝으로 이동, 삽입(/링크)
  • 홈 버튼을 눌러 줄의 시작 부분으로 이동
  • 아래쪽 버튼을 눌러 3행으로 이동하세요.
  • 메뉴에서 매크로 --> 기록 중지 옵션을 클릭하세요.

이제 원하는 만큼 매크로를 재생할 수 있으며 매크로는 작업을 반복/린싱합니다.

답변2

아마도 "대체 줄"(스크립팅 언어를 사용하여 실제로 가장 잘 제공될 수 있음)과 다른 방식으로 이에 접근할 수 있습니다.

"링크"로 묶으려는 줄에 해당 줄을 링크로 식별하는 내용이 포함되어 있다고 가정하면 먼저 이 줄을 바꾼 다음 왼쪽에 있는 줄이 제목이어야 한다고 가정할 수 있습니다. 따라서 링크 줄에 "http"가 포함되어 있다고 가정해 보겠습니다.

  1. Control-H교체 대화 상자를 불러오려면
  2. (http.*)검색 기준으로 입력합니다 ( http해당 내용이 포함된 행을 찾아 변수에 저장).\1
  3. 교체 기준으로 입력 (link)\1(/link)- 이전 단계에서 찾은 내용을 링크 태그에 포함된 자체로 교체합니다.
  4. 모두 바꾸기 - 이제 모든 링크 줄이 포함되어 있으며 나머지 줄은 제목이어야 합니다.

  1. ^([^(\(link\))]*)$검색 기준으로 입력하십시오 (다음을 포함하지 않는 행을 찾으십시오).(link)
  2. (title)\1(/title)교체 기준으로 입력
  3. 모두 다 바꿔

그런 다음 나머지 줄을 제목 태그로 묶습니다.

답변3

편집하다:이 답변은 Notepad++ 버전 5.9.8을 사용하여 작성 및 테스트되었으며 현재 버전의 Notepad++(v 6.2) 및 대부분의 이전 버전에서 작동합니다. 이 답변을 작성한 후 Notepad++를 현재 버전 6.2로 업데이트했는데 이제 솔루션이 훨씬 쉬워졌습니다. 따라서 Notepad++ 버전 5.9.8(또는 이전 버전)을 사용하고 있고 현재 버전의 Notepad++로 업데이트하고 싶지 않다면 이 답변이 도움이 될 것입니다. Notepad++ 버전 6 이상으로 업그레이드한 경우 훨씬 간단한 다른 답변을 참조하세요.

이것을 원본 파일로 사용:

This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7

1단계. 모든 줄의 시작과 끝 부분에 " <title>" 및 " " 가 포함된 고유 태그를 배치합니다 .</title>

In "Regular Expression" Mode (F: is Find expression, R: is Replace expression):  
    F:^(.*)$
    R:<##@@Begin@@##><title>\1</title><##@@End@@##>

결과는 다음과 같습니다.

<##@@Begin@@##><title>This is line 1</title><##@@End@@##>
<##@@Begin@@##><title>This is line 2</title><##@@End@@##>
<##@@Begin@@##><title>This is line 3</title><##@@End@@##>
<##@@Begin@@##><title>This is line 4</title><##@@End@@##>
<##@@Begin@@##><title>This is line 5</title><##@@End@@##>
<##@@Begin@@##><title>This is line 6</title><##@@End@@##>
<##@@Begin@@##><title>This is line 7</title><##@@End@@##>

2단계. 모든 "줄바꿈"(\r\n)을 제거합니다.

In "Extended" mode:
    F:\r\n
    R:

결과는 다음과 같습니다(전체 파일이 한 줄에 있음).

<##@@Begin@@##><title>This is line 1</title><##@@End@@##><##@@Begin@@##><title>This is line 2</title><##@@End@@##><##@@Begin@@##><title>This is line 3</title><##@@End@@##><##@@Begin@@##><title>This is line 4</title><##@@End@@##><##@@Begin@@##><title>This is line 5</title><##@@End@@##><##@@Begin@@##><title>This is line 6</title><##@@End@@##><##@@Begin@@##><title>This is line 7</title><##@@End@@##>

3단계. 두 줄마다 두 번째 줄("짝수" 줄)에서 " <title>" 및 " </title>"를 " <link>" " "로 변경합니다.</link>

In "Regular Expression" Mode:
    F:<##@@Begin@@##>(<title>.*?</title><##@@End@@##>)<##@@Begin@@##><title>(.*?)</title>(<##@@End@@##>)
    R:\1<link>\2</link>\3

결과는 다음과 같습니다(전체 파일이 여전히 한 줄에 있음).

<title>This is line 1</title><##@@End@@##><link>This is line 2</link><##@@End@@##><title>This is line 3</title><##@@End@@##><link>This is line 4</link><##@@End@@##><title>This is line 5</title><##@@End@@##><link>This is line 6</link><##@@End@@##><title>This is line 7</title><##@@End@@##>

4단계. "end" 태그를 "Newline"(\r\n)으로 바꿉니다.

In "Extended" mode:
    F:<##@@End@@##>
    R:\r\n

결과는 다음과 같습니다.

<title>This is line 1</title>
<link>This is line 2</link>
<title>This is line 3</title>
<link>This is line 4</link>
<title>This is line 5</title>
<link>This is line 6</link>
<title>This is line 7</title>

따라서 4단계입니다. 이 작업을 한 번만 수행하거나 아주 가끔씩만 수행하면 나쁘지 않습니다.

Notepad++의 가장 큰 제한은 "확장" 및 "정규식" 검색/대체를 결합할 수 없다는 것입니다. 따라서 "확장" 모드에서는 "줄바꿈"을 검색할 수 있지만 "와일드카드"(*.?)를 사용하여 검색할 수 없으며, "Regex" 모드에서는 "와일드카드"를 사용하여 검색할 수 있지만 "를 검색할 수 없습니다. 개행".

정기적으로 이 작업을 수행해야 하는 경우 Textpad(http://textpad.com), 두 단계로 수행할 수 있습니다(파일에 "홀수" 줄이 있을 가능성이 있는 경우).

1단계. 모든 줄에 " <title>" " "를 추가합니다.</title>

In "Regular Expression" Mode (F: is Find expression, R: is Replace expression):  
    F:^(.*)$
    R:<title>\1</title>

2단계. 두 줄마다 두 번째 줄("짝수" 줄)에서 " <title>" 및 " </title>"를 " <link>" 및 " "로 변경합니다.</link>

Still in "Regular Expression" Mode:  
    F:^(<title>.*</title>)\n<title>(.*)</title>
    R:\1\n<link>\2</link>

Textpad를 사용하면 파일에 항상 "짝수" 줄이 있다는 것을 알고 있으면 모든 작업을 한 번에 수행할 수 있습니다.

In "Regular Expression" Mode:  
    F:^(.*)\n(.*)\n
    R:<title>\1</title>\n<link>\2</link>\n

awk를 사용하여 쉽게 대체할 수도 있습니다.

편집하다:여기에 awk를 사용하여 수행하는 몇 가지 정보와 예가 있습니다.

Awk는 Unix용으로 만들어진 스크립트 프로그래밍 언어이지만 이제 Windows에서도 사용할 수 있으며 Mac에서도 사용할 수 있습니다.

awk의 주요 용도는 텍스트 출력 및 텍스트 파일을 처리(조작 및 필터링)하는 것입니다. 예를 들어 "로그" 파일을 처리하여 특정 필드와 줄을 인쇄합니다.

Awk에는 사용자 인터페이스가 없습니다. 일반적으로 명령 창 프롬프트에서 실행되는 프로그램이거나 "쉘 스크립트"(unix) 또는 "배치 파일"(Windows)입니다.

awk를 실행할 때 명령줄에 awk 명령을 지정하거나 awk 명령 스크립트 파일을 생성하여 처리 중인 텍스트로 수행할 작업을 awk에 알립니다.

유닉스에서는 awk 스크립트 파일이 아닌 명령줄에서 모든 awk 명령을 지정하는 것이 매우 일반적입니다. Windows에서는 정반대입니다. awk가 명령에서 따옴표, 괄호 및 기타 구두점을 사용하는 방식으로 인해 awk 스크립트는 일반적으로 (아마도 항상) Windows 명령 프롬프트를 혼동합니다. 따라서 Windows에서는 awk 명령을 awk 스크립트 파일에 넣어 awk를 사용하는 것이 거의 항상 더 좋습니다.

다음은 질문에 대한 해결책으로 awk를 사용하는 예입니다.

먼저 조작하려는 텍스트가 다음 이름의 파일에 있다고 가정해 보겠습니다.

example.txt

다음으로, 다음 코드를 사용하여 파일을 만듭니다. 이것을
ododeven.awk(또는 원하는 대로) 로 저장할 수 있습니다 .

{
    if (NR % 2 == 1)
    {
        print "<title>"$0"</title>"
    }
    else
    {
        print "<link>"$0"</link>"
    }
}

또는 다음과 같이 한 줄에 이 awk 스크립트를 지정할 수도 있습니다.

{ if (NR % 2 == 1) {print "<title>" $0 "</title>"} else {print "<link>" $0 "</link>"} }

우리가 사용할 awk 명령줄 매개변수는 다음과 같습니다:

-f "oddeven.awk"   This is the name of the awk command script file.
"example.txt"      This is the name of the text file you are reading (and manipulating).
"output.txt"       This is the name of the file you are creating that will contain the modified text.

그런 다음 awk를 호출하는 데 사용하는 명령줄은 다음과 같습니다.

awk -f "oddeven.awk" "example.txt" > "output.txt"

파일 수정 과정이 "일회성"인 경우 Notepad++나 다른 텍스트 편집기를 사용하는 것이 스크립팅 언어를 배우는 것보다 쉬울 것입니다.

그러나 이 동일한 프로세스를 반복해서 수행하거나 프로세스를 자동화하여 쉘 스크립트(unix) 또는 배치 파일(Windows)에서 수행할 수 있도록 하려면 awk를 사용하는 것이 좋습니다.

답변4

나는 이것이 명확한 답은 아니지만 당신을 올바른 방향으로 이끌 수 있다는 것을 알고 있습니다. 살펴보시면이 장소정규식 모드에서 바꾸기 기능을 사용하여 줄의 시작과 끝 부분에 내용을 삽입하는 방법을 보여줍니다.

EG 찾을 내용: ^(.+)$ 바꿀 내용: title\1/title

이제 모든 줄을 편집하게 되지만, 절반 정도 됐습니다.

관련 정보