빔 솔루션

빔 솔루션

다음 이미지 코드가 포함된 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를 이스케이프합니다 '\''.

관련 정보