REGEX pesquisa e substituição por sed ou outro comando

0

Eu tenho um grande arquivo SQL com conteúdo como

[code language="bash"]
git checkout master
git pull origin master
...
[/code]
Lorem ipsum dolor sit amet, consectetur adipiscing elitUt enim ad minim 
[code]some other code[/code]
veniam, quis nostrud exercitation
[code language="php"]var_dump($data);[/code]

E eu quero substituir o [code language="{lang}"]{wrapped-code}[/code] por <pre><code class="language-{lang}">{wrapped-code}</code></pre>

Assim, o resultado final será parecido com

<pre><code class="language-bash">
git checkout master
git pull origin master
...
</code></pre>
Lorem ipsum dolor sit amet, consectetur adipiscing elitUt enim ad minim 
<pre><code>some other code</code></pre>
veniam, quis nostrud exercitation
<pre><code class="language-php">var_dump($data);</code></pre>

Por favor, deixe-me saber como podemos conseguir isso com sed ou outro comando localizar e substituir.

    
por MagePsycho 24.08.2018 / 23:54

1 resposta

2

sed -e 's/\[code language="\([^"]*\)"\]/<pre><code class="language-">/' \
    -e 's!\[/code\]!</code></pre>!' \
    < input  > output

Os colchetes devem ser escapados para que não representem um conjunto de caracteres; Em seguida, capturo o texto entre as aspas para usar na substituição (como ); para a segunda pesquisa & Como substituto, usei ! como separador para evitar a Síndrome da palmadinha inclinada com as substituições da tag de fim de HTML.

    
por 25.08.2018 / 03:21