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

Dotaz: príkaz sed nefunguje s premennými

Libco avatar 25.10.2008 07:51 Libco | skóre: 8 | Banska Bystrica - sk
príkaz sed nefunguje s premennými
Přečteno: 158×
Odpovědět | Admin
Situácia: V skripte (cesta: /var/tmp/config) sa nachádza napr. riadok:
Kn 25487 nhg 123456123456 ; komoropa xxyy
sú 2 premenné:
a=123456123456
b=654321654321

Na vyhladanie daného riadku a zmenu jeho časti som použil tento príkaz:
sed -i '/xxyy/s/$a/$b/g' /tmp/config
Takto to nejde.
Keď vymením premenné na konkrétne znaky, vtedy to ide.
sed -i '/xxyy/s/123456123456/654321654321/g' /var/tmp/config

Poradí mi niekto, čo s tým? Upozorňujem že je to v busyboxe a ten je dosť oklieštený na príkazy.

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

Odpovědi

25.10.2008 08:19 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: príkaz sed nefunguje s premennými
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mrkni na toto ;-) :
pavel@nb ~ $ a=12; b=34; echo "a=$a; b=$b;"
a=12; b=34;
pavel@nb ~ $ echo -e "ab\nc${a}d\nef"
ab
c12d
ef
pavel@nb ~ $ echo -e "ab\nc${a}d\nef" | sed "/d/ s/$a/$b/g"
ab
c34d
ef
Libco avatar 25.10.2008 08:22 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: príkaz sed nefunguje s premennými
Odpovědět | | Sbalit | Link | Blokovat | Admin
Sorry, už som to našiel.
Stačí vymeniť apostrofy za úvodzovky.

sed -i "/xxyy/s/$a/$b/g" /tmp/config
lama
25.10.2008 08:27 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: príkaz sed nefunguje s premennými
Přesně tak ...

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.