“Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)” Kod odpowiedzi

Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)

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

Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej 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

Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)

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

Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej 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

Odpowiedzi podobne do “Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)”

Pytania podobne do “Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)”

Więcej pokrewnych odpowiedzi na “Używanie SED do znalezienia i wymiany złożonego ciągów (najlepiej regex)” w Shell/Bash

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu