Notepad++에서 다음 줄의 시작 부분에 행의 접두사를 추가하는 방법은 무엇입니까?

Notepad++에서 다음 줄의 시작 부분에 행의 접두사를 추가하는 방법은 무엇입니까?

한 줄을 더 많은 줄의 접두사로 사용하고 싶습니다. 예를 들어, 다음 줄이 있는 상황을 고려해 보십시오.

hostname-junek-1
;ge-1/0/1
;ge-1/0/2
;ge-1/0/5
;ge-1/1/27
;ge-1/1/39
hostname-junek-2
;ge-1/0/5
;ge-2/0/27
;ge-2/0/39
hostname-junek-3
;ge-1/1/1
;ge-2/1/13
;ge-2/1/17
;ge-2/1/11

나는 다음과 같은 것을 받고 싶습니다:

hostname-junek-1;ge-1/0/1
hostname-junek-1;ge-1/0/2
hostname-junek-1;ge-1/0/5
hostname-junek-1;ge-1/1/27
hostname-junek-1;ge-1/1/39
hostname-junek-2;ge-1/0/5
hostname-junek-2;ge-2/0/27
hostname-junek-2;ge-2/0/39
hostname-junek-3;ge-1/1/1
hostname-junek-3;ge-2/1/13
hostname-junek-3;ge-2/1/17
hostname-junek-3;ge-2/1/11

어떻게 해야 하나요? notepad++ 또는 다른 것을 사용합니다.

답변1

Notepad++에서는 이 작업을 수행할 수 없습니다.

Perl oneliner를 사용한 솔루션은 다음과 같습니다.

cat inputfile 
hostname-junek-1
;ge-1/0/1
;ge-1/0/2
;ge-1/0/5
;ge-1/1/27
;ge-1/1/39
hostname-junek-2
;ge-1/0/5
;ge-2/0/27
;ge-2/0/39
hostname-junek-3
;ge-1/1/1
;ge-2/1/13
;ge-2/1/17
;ge-2/1/11

perl -ane 'if(/^(hostname-junek-\d+)\R/) {$host=$1;next}print "$host$_"' inputfile > outputfile 

cat outputfile
hostname-junek-1;ge-1/0/1
hostname-junek-1;ge-1/0/2
hostname-junek-1;ge-1/0/5
hostname-junek-1;ge-1/1/27
hostname-junek-1;ge-1/1/39
hostname-junek-2;ge-1/0/5
hostname-junek-2;ge-2/0/27
hostname-junek-2;ge-2/0/39
hostname-junek-3;ge-1/1/1
hostname-junek-3;ge-2/1/13
hostname-junek-3;ge-2/1/17
hostname-junek-3;ge-2/1/11

설명:

/                           # regex delimiter
  ^                         # beginning of line
    (hostname-junek-\d+)    # group 1, hostname...followed by 1 or more digits
    \R                      # any kind of linebreak
/                           # regex delimiter

if the regex matches the current line, {
    $host=$1;               # save the hostname
    next                    # skip to next line
}                           # endif
print "$host$_"             # print the content of $host followed by the current line

관련 정보