Ich habe überall gesucht, aber nicht einen Sed oder anderen Befehl, um folgende Aktionen finden:Suchen und Ersetzen String zwischen 2 Strings
Suche nach was zwischen den Tags und ersetzt mit einem String.
<version.of.artifact>1.2.3</version.of.artifact>
Klingt einfach genug, kann aber keinen Befehl finden, der beides tut.
Ich bin in der Lage und Druckwert zu finden, mit:
sed -n 's:.*<version.of.artifact>\(.*\)</version.of.artifact>.*:\1:p' myFile.txt
Aber ich mag den Wert (1.2.3) mit einem anderen Wert ersetzen.
Jede Hilfe wäre willkommen.
gelöst - und Antwort unter Verwendung Variablen aktualisiert:
sed -i "s:\(<$var1>\)[^<]*\(</$var1>\):\1$var2\2:" pomtest.xml
So wissen Sie, dass Sie einen Text mit '\ erfassen kann (... \)' und dann darauf verweisen später mit '\ 1 ' aber kann nicht herausfinden, wie man '. *' fängt und später darauf Bezug nimmt? Denke einfach darüber nach, was dein bestehendes Skript mit jedem Segment der Eingabezeile macht - die Antworten sind in Ordnung. –