1 votes

SED/AWK/PERL(GNU userland) - comment substituer le motif A mais pas le motif B ?

Premièrement, j'utilise GNU userland donc vous pouvez supposer que j'utilise Bash, GNU coreutils...

J'ai un HTML et je veux changer tous les

href="foobarz"

en

href=""

Cependant, je ne veux modifier aucune ligne contenant le mot css (non sensible à la casse)

'href="fooCsSbarz"'

devrait rester inchangé

J'utilise actuellement la commande

$ cat foo.html | sed -e 's/href="[^"]*"/href=""/g' > bar.html

mais il ne peut pas retenir les lignes contenant le mot css (non sensible à la casse)

En fait, tout outil disponible dans *nix est le bienvenu, comme sed, awk, perl...

Merci pour votre aide !

1voto

user1794469 Points 306

De aquí .

Vous pouvez utiliser :

sed '/[Cc][Ss][Ss]/! s/href="[^"]*"/href=""/g' foo.html > bar.html

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