Portál AbcLinuxu, 13. května 2025 13:41

Dotaz: Nástroj sed a práce s proměnnými

30.10.2015 15:19 thx4help
Nástroj sed a práce s proměnnými
Přečteno: 871×
Odpovědět | Admin
Dobrý den, snažím se nástrojem sed měnit hodnotu proměnné, ale mám menší problém

PROMENNA="/var/log"

echo $PROMENNA | sed -e s/"$PROMENNA"/test"$PROMENNA" >> test.tx

Při spuštění dostanu vždy:

sed: -e expression #1, char 5: unknown option to `s'

Myslím že problém dělají ty lomítka v proměnné. Ta proměnná může vypadat pokaždé jinak, např. "/var/chef/cache". Nevím jak problém vyřešit. Můžete mi prosím někde pomoci/napovědět? Děkuji mockrát :)

Ř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× (jose17)
30.10.2015 15:29 thx4help
Rozbalit Rozbalit vše Re: Nástroj sed a práce s proměnnými
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ok tak zdá se že jsem to vyřešil použitím jiného oddělovače:

echo $PROMENNA | sed -e s:"$PROMENNA":test"$PROMENNA" >> test.tx
30.10.2015 20:03 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Nástroj sed a práce s proměnnými
Správne riešenie.

O nahradenie obsahu premennej sa stará shell - to znamená, že sa to udeje ešte prv ako sa spustí sed. Ten príkazový riadok teda vlastne vyzerá takto:

echo /var/log | sed -e s//var/log/test/var/log >> test.tx

No a sed samozrejme tie lomítka považoval za oddeľovače a snažil sa nahradiť prázdny string (medzi prvými dvoma lomítkami) za "var" (medzi druhými dvoma lomítkami) s flagmi "log" a ešte nejakým "bordelom" za tým.

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.