다음 이미지 코드가 포함된 400줄 이상의 HTML이 있습니다.
<a class='gallery' href="galimages/boards/board34.jpg" alt="board large"><image src ="galimages/boards/thumbs/34.jpg" alt="board thumb"></a>
첫 번째 배치는 34에서 160까지 번호가 매겨진 체커보드 이미지입니다.
번호를 제외하고 모든 코드 줄이 동일하므로 프로그래밍 방식으로 번호를 매길 수 있는 방법이 있습니까?
저는 Centos 7을 사용하고 있으며 일반적으로 vim 편집기를 사용합니다.
답변1
빔 솔루션
몇 가지 조언여기. 숫자 목록을 만든 다음 숫자 주위의 나머지 문자열을 교체하겠습니다. 각 숫자가 두 개씩 필요하기 때문에 이 전략이 더 쉽다고 생각합니다. 예를 들어, 빈 문서에서:
:put =range(34,160)
:%s,\(.*\),<a class='gallery' href="galimages/boards/board\1.jpg" alt="board large"><image src ="galimages/boards/thumbs/\1.jpg" alt="board thumb"></a>
첫 번째 줄 은 put
빈 줄을 생성하므로 수동으로 삭제해야 합니다.
설명하다
:put =range(34,160)
:34부터 160까지 한 줄에 하나씩 일련의 숫자를 만듭니다. 앞에서 언급했듯이 실제로는 빈 줄로 문서가 시작되므로 지금 또는 나중에 수동으로 제거하십시오.:%s,FOO,BAR
: 문서 전체(%
)를 검색하여 교체( )하고s
,FOO
로 교체합니다BAR
.FOO
:\(.*\)
. 전체 줄(.*
)을 바꾸되 내용(번호)을 캡처 그룹에 저장합니다\(...\)
.BAR
: 필요에 따라 문자열로 바꾸고\1
두 위치 모두에 숫자( )를 사용하여 마지막 행을 만듭니다.
쉘 솔루션
를 사용하지 않고도 셸에서 비슷한 전략을 사용할 수 있습니다 vim
.
$ seq 34 160 | sed 's,\(.*\),<a class='\''gallery'\'' href="galimages/boards/board\1.jpg" alt="board large"><image src ="galimages/boards/thumbs/\1.jpg" alt="board thumb"></a>,'
설명하다
seq 34 160
:34부터 160까지 한 줄에 하나씩 일련의 숫자를 만듭니다.sed…
: 위와 같이 교체합니다.sed
매개변수를 인용했기 때문에'
이 스크립트는 인라인'
s를 이스케이프합니다'\''
.