ビームソリューション

ビームソリューション

次の画像コードを含む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:原稿全体(%)を検索して交換()しsFOOに置き換えます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をエスケープします'\''

おすすめ記事