cat file.html | sed 's/.*<!--\(.*\)-->.*//g'
3 Réponses :
Je pense que vous pouvez le faire avec résultat du awk code> si vous voulez. Démarrer:
awk code>: p>
Supprime par exemple la ligne entière suivante. Pas jus the commentaire:
Un problème avec votre tentative initiale est que votre regex ne traite que des commentaires entièrement sur une ligne. En outre, le principal et la trail ". *" Supprimera le texte non-commentaire.
Vous feriez mieux d'utiliser le code existant au lieu de rouler le vôtre. p>
http://sed.sourceforge.net/grabbag/scripts/ strip_html_comments.sed p> (de http://sed.sourceforge.net/grabbag/scripts/ ) p> Voir ce lien de différentes manières d'utiliser des modules Perl pour supprimer les commentaires HTML (à l'aide de RegExP :: Common, HTML :: Analyseur, ou fichier :: comments.) Je suis sûr qu'il existe des méthodes utilisant d'autres utilitaires. P>
PatrickMdnet a la bonne réponse. Ici, il est sur une ligne à l'aide d'une expulsion étendue:
cat file.html | sed -e :a -re 's/<!--.*?-->//g;/<!--/N;//ba'
Merci Brian! Vous êtes génial :) Qu'est-ce que le: une moyenne dans votre commande sed?
Cela crée une étiquette de branche nommée 'A'. Le '// BA' à la fin est ramifiant à 'A'.
Est le // code> avant
BA code> nécessaire? Je n'en ai pas besoin dans gnu
sed code>.
La double barre oblique est courte pour l'expression précédente (qui est /
Peut-être:
/ / code>
@jnpcl: Cela ressemble à Perl. Il ne fonctionnera pas dans
sed code>.
Des avertissements habituels s'appliquent.
@Dennis: C'est ce qui a fonctionné pour moi avec Regexpal , je n'ai pas réalisé que
sed code> utilisé une syntaxe différente pour des expressions régulières.