Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SED - vyhladavanie

Nedavno som pouzil uspesne sed na upravu textoveho suboru (xml). Trvalo to sice hooooodne dlho, ale podarilo sa.
Teraz potrebujem nieco obdobne, vlozit kusok textu na vopred zadefinovane miesto. To si najdem podla charakteristickeho reazca. To by som vedel, ale problem je, ze potrebujem vlozit tento text iba za PRVY vyskyt charakteristickeho retazca, v subore je ich viac. Nikde nemozem najst ako to zapisat.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Musi to byt sed? Pokud je to XML, proc nepouzijes nejaky CLI tool, ktery s nim umi primo pracovat a…
MaSo 09.01.2023 15:16
MaSo
Idem na to pozriet, ten sed sa mi pacil, lebo je to viac univerzalnejsie, ked sa s tym naucis (akyko…
truhlik 09.01.2023 16:18
truhlik
Sed je sice univerzalni, ale kdyz potrebujes delat queries nad tim XML (treba podle hotnot elementu,…
MaSo 10.01.2023 08:15
MaSo
Ty si to tusim privolal :-) MAs s tym skusenosti? Ja pohladam, ale len tak ci je to v tomto vobec mo…
truhlik 10.01.2023 20:12
truhlik
Vstup (text.xml): <?xml version="1.0"?> <cars> <car> <id>1</id> <tag1>3</tag1> <tag2>vejce1</tag2>… nový
MaSo 11.01.2023 08:40
MaSo
DIky, zatial neviem, ako prvy krok je to vyborne na studium. Idem si spravit priklady a popasovat sa… poslední
truhlik 11.01.2023 18:30
truhlik

Ty si to tusim privolal :-)
MAs s tym skusenosti? Ja pohladam, ale len tak ci je to v tomto vobec mozne
tag ID (asi 100x), pod kazdym asi 10 dalsich tagov, potrebujem zmenit napr tag5 ale len ked tag2="A'
Je nieco take v tom mozne?

Vstup (text.xml):

<?xml version="1.0"?>
<cars>
    <car>
        <id>1</id>
        <tag1>3</tag1>
        <tag2>vejce1</tag2>
    </car>
    <car>
        <id>2</id>
        <tag1>3</tag1>
        <tag2>vejce2</tag2>
    </car>
    <car>
        <id>3</id>
        <tag1>4</tag1>
       <tag2>vejce3</tag2>
    </car>
</cars>

Prikaz, ktery zmeni hodnutu tag2 na "vejce8", u elementu car kde tag1 ma hodnotu 3.

xmlstarlet ed -u "/cars/car[tag1="3"]/tag2" -v vejce8 text.xml

Vystup:

<?xml version="1.0"?>
<cars>
  <car>
    <id>1</id>
    <tag1>3</tag1>
    <tag2>vejce8</tag2>
  </car>
  <car>
    <id>2</id>
    <tag1>3</tag1>
    <tag2>vejce8</tag2>
  </car>
  <car>
    <id>3</id>
    <tag1>4</tag1>
    <tag2>vejce3</tag2>
  </car>
</cars>

Je to ono?

Zpět do poradny Odpovědět na původní otázku Nahoru