1 votes

Sed/awk - supprimer toutes les balises sauf deux balises et texte brut

Voici un exemple pour mon fichier texte :

Ceci est un texte d'exemple 

Texte d'exemple

Le problème est que j'ai besoin à la fois du texte pur et des balises suivantes uniquement :
color w:val="FF0000"
highlight w:val="green"

Comment cela peut-il être fait ?

0voto

Hastur Points 3660

Avec la ligne de commande ci-dessus, elle fonctionnera si vous n'avez jamais ces expressions en tant que texte :

* `\>`



    cat Myfile.txt  | grep -E "color w:val=|highlight w:val=" | sed s/""/""/g

Explication :

*   `grep -E, --extended-regexp PATTERN`  
    Interprète PATTERN comme une expression régulière étendue
*   `|` OU logique dans le PATTERN de `grep`
*   `|` symbole de tube dans un environnement de shell
*   ```sed s/" remplace globalement (partout) ``" par la chaîne vide `""` `` ```

``` ``Remarque : il est possible d'écrire `sed` de plusieurs autres manières et de manière plus compacte. Je pense que cela est _pédagogique_ et peut être utilisé dans une plus large gamme de possibilités lorsqu'il est nécessaire de substituer une expression par une autre.

Voici la sortie :

    highlight w:val="green"  
    color w:val="FF0000"`` ``` ````

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X