sed w bashu

  • Rejestracja: dni
  • Ostatnio: dni
0

Jak poleceniem sed w bashu znaleźć taga, którego wartości nie znam, znam jedynie nazwę taga
<nazwaTaga>NIEZNAM</nazwaTaga>
i muszę tą powyższą linię z xmla zastąpić
<nazwaTaga>MOJAWARTOSC</nazwaTaga>

To co udało mi się przygotować do tej pory ale nie wiem co wstawić w miejsce znaków zapytania, to musi coś być w stylu, że ten tekst jest obojętny, podejrzewam, że tutaj będzie m.in. gwiazdka * ale jak to dokładnie składnie napisać to nie wiem.
sed 's_<nazwaTaga>?????????</nazwaTaga>_<nazwaTaga>MOJAWARTOSC</nazwaTaga>_' <original.xml > moj.xml
xmlStarlet odpada to musi być bash.

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

Przykładowo żeby zamienić zawartość from w pliku test.xml:

Kopiuj
<note><to>Tove</to><from>ScriptTest</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

możesz wpisać:

Kopiuj
sed -i -e '/<note>/,/<\/note>/ s|<from>[a-zA-Z0-9]\{1,\}</from>|<from>greg2345</from>|g' test.xml

wartość ScriptTest zostanie zamieniona na greg2345.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.