Perl para o resgate!
perl -pe 'BEGIN { $n = 1 } s%\[H%</pre></div><div id=cat$n><pre>% && $n++' filename
-
-plê a entrada linha por linha e imprime o que o código faz com ela -
BEGIN { ... }é executado antes de o programa ser inserido -
s%pattern%replacement%substituipatternporreplacement. -
\[precisa de uma barra invertida, porque[é especial em expressões regulares -
&& $n++Se a substituição for bem sucedida, ela retornará true, então o próximo comando é executado: e incrementa o contador$n.