“Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)” Réponses codées

Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)

sed -i -E "s/(<username>.+)name(.+<\/username>)/\1something\2/" file.xml
DreamCoder

Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)

sed -e '/username/s/CDATA\[name\]/CDATA\[something\]/' \
-e '/password/s/CDATA\[password\]/CDATA\[somethingelse\]/' \
-e '/dbname/s/CDATA\[name\]/CDATA\[somethingdifferent\]/' file.txt
DreamCoder

Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)

$ sed -e '1s/name/something/2' \
      -e '3s/name/somethingdifferent/2' \
      -e 's/password/somethingelse/2' sample.xml
DreamCoder

Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)

sed -i -E "s/(<username>.+)name(.+<\/username>)/\1something\2/" file.xml
This is, I think, what you're looking for.

Explanation:

parentheses in the first part define groups (strings in fact) that can be reused in the second part
\1, \2, etc. in the second part are references to the i-th group captured in the first part (the numbering starts with 1)
-E enables extended regular expressions (needed for + and grouping).
-i enables "in-place" file edit mode
DreamCoder

Réponses similaires à “Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)”

Questions similaires à “Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)”

Plus de réponses similaires à “Utilisation de SED pour trouver et remplacer la chaîne complexe (de préférence par regex)” dans Shell/Bash

Parcourir les réponses de code populaires par langue

Parcourir d'autres langages de code