次の画像コードを含む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
ビームソリューション
いくつかのアドバイスここ。数字リストを作成し、数字の周りの残りの文字列を置き換えます。各数字が2つずつ必要なので、この戦略がより簡単だと思います。たとえば、空の文書では:
: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までの行に1つずつ一連の数字を作成します。前述のように、実際には空白行で文書が始まるので、今または後で手動で削除してください。:%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までの行に1つずつ一連の数字を作成します。sed…
:上記のように交換してください。sed
パラメータを引用したので、'
このスクリプトはインライン'
sをエスケープします'\''
。