Portál AbcLinuxu, 14. května 2025 02:15

Dotaz: sed vložení předposledního řádku

19.4.2011 13:19 mev
sed vložení předposledního řádku
Přečteno: 250×
Odpovědět | Admin

ahoj, potřeboval bych pomoct jak přes sed vložit předposlední řádek do souboru test.config poslední dva řádky v souboru jsou:

<a b="5" />
</e.f.g>

potřebuji mezi ně dostat řádek:

<c d="2000" />


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.4.2011 14:40 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: sed vložení předposledního řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud znám tag, před který se bude text přidávat, pak to bude takto:
echo '<a b="5" />\n</e.f.g>' | sed -r "s/<\/e\.f\.g/<c d=\"2000\" \/>\n&/"
Pokud neznám konkrétní tag ale vím že je na konci souboru, pak by to šlo nějak takto:
lines=$(($(wc -l test.config | awk '{print $1;}') - 1)); sed -r "$lines a\<c d=\"2000\" \/>" test.config
19.4.2011 14:57 ams
Rozbalit Rozbalit vše Re: sed vložení předposledního řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -e '$s|^|<c d="2000" />\n|'
19.4.2011 15:31 Ash | skóre: 53
Rozbalit Rozbalit vše Re: sed vložení předposledního řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na posledním řádku uděláte insert:
sed -i -e '$ i<c d="2000" />' test.config
21.4.2011 16:34 mev
Rozbalit Rozbalit vše Re: sed vložení předposledního řádku
Díky to je to pravé.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.