Portál AbcLinuxu, 10. května 2025 07:14

Dotaz: sed jak zadat parametr

14.6.2012 19:36 jnovacek | skóre: 22 | blog: NovLin
sed jak zadat parametr
Přečteno: 181×
Odpovědět | Admin
mám následující problém. V jednom souboru potřebuji nahradit jeden řetězec druhým. To by nebyl problém používám příkaz

sed -i 's/stare-slovo/nove-slovo/g' jmenosouboru

Toto na klasické slova funguje, ale já potřebuji najít v souboru následující řetězec

hodnota[0]="A"

a nahradit ho tímto

hodnota[0]="B"

Dá se to dát do nějakých apostrofů, nebo jak donutit příkaz sed k této činnosti?

Předem děkuji

Ř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

Řešení 1× (jnovacek (tazatel))
14.6.2012 19:43 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: sed jak zadat parametr
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je potřeba do zadat takto:
echo 'hodnota[0]="A"' | sed 's/hodnota\[0\]="A"/hodnota[0]="B"/'
Znaky [] se v regulárních výrazech používají pro definování rozsahu, např. [0-9] zastupuje jakékoliv číslo v rozsahu 0-9. Pokud chceš matchovat tyto závorky, musíš je escapovat viz nahoře.
14.6.2012 20:45 jnovacek | skóre: 22 | blog: NovLin
Rozbalit Rozbalit vše Re: sed jak zadat parametr
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak mám další dotaz.

Jak zjistit, že se v souboru řetězec nenachází?

Jak do souboru za řádek v kterém najdu hledaný řetězec vložím další řádek s textem? Nevím kde se ten řádek s řetězcem za který to chci vložit nachází.

Snad jsem se vyjádřil srozumitelně.

Předem děkuji

14.6.2012 21:29 aaaaaaaaaaaaaaaaa
Rozbalit Rozbalit vše Re: sed jak zadat parametr
Niekedy nezaskodi precitat si man sed.
sed '/hladany retazec alebo regexp/a\
vlozeny text' nazov_suboru.txt

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.