Portál AbcLinuxu, 10. května 2025 05:46

Dotaz: sed - znak "/" v nahrazovaném řetězci

Jardík avatar 15.8.2006 21:15 Jardík | skóre: 40 | blog: jarda_bloguje
sed - znak "/" v nahrazovaném řetězci
Přečteno: 174×
Odpovědět | Admin
Potřeboval bych trochu poradit ze sedem:
cat "toolkit-config.template" \
| sed "s/\${INSTALL_DIR}/${INSTALL_DIR}/g" \
| sed "s/\${DEFINES}/${DEFINES}/g" \
| sed "s/\${CFLAGS}/${CFLAGS}/g" \
>>"${DEST_DIR}/bin/toolkit-config"
Jde o následující. Mám šablonu toolkit-config.template a ta obsahuje i proměnné ve tvaru ${PROMĚNNÁ}. Potřebuji ty proměnné nahradit dle proměnných, co jsou ve skriptu. Problémem však je, že např ${INSTALL_DIR} může obsahovat několikrát znak "/" a sed skončí s chybou.
Věřím v jednoho Boha.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.8.2006 21:29 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: sed
Odpovědět | | Sbalit | Link | Blokovat | Admin

(a) místo lomítka použijte znak, o kterém víte, že tam nebude

(b) AC_OUTPUT() :-)

Jardík avatar 15.8.2006 21:42 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: sed
místo lomítka použijte znak, o kterém víte, že tam nebude
Jako v té proměnné? To bohužel není možné, je to cesta.
AC_OUTPUT()
??? (doufám, že to nemá nic společného s autotools soudě dle toho názvu)
Věřím v jednoho Boha.
15.8.2006 21:58 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: sed
Každý svého štěstí strůjcem. Vám vadí autoconf, mně zase požadavky typu "Potřebuji vyřešit problém P bez použití nástroje N.", kde N je nejvhodnější nástroj k řešení problému P a k jeho nepoužití není žádný racionální důvod, pouze osobní antipatie tazatele…
15.8.2006 22:30 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: sed
místo lomítka použijte znak, o kterém víte, že tam nebude
Jako v té proměnné? To bohužel není možné, je to cesta.
Ne v proměnné, ale v zápisu sed. Např.:
s|výraz|náhrada|
David Watzke avatar 16.8.2006 17:28 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: sed
I v proměnné...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Marek Bernát avatar 16.8.2006 18:28 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: sed
Prečo preboha? To má akože cesty písať zavináčom a potom to nahradzovať?
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
David Watzke avatar 16.8.2006 18:51 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: sed
Cože?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 16.8.2006 18:54 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: sed
Aha, asi jsem to pochopil jinak... sleduj:
použijte znak, o kterém víte, že tam nebude
Jako v té proměnné?
Ale teď to sám neumím srozumitelně vysvětlit... Snad chápeš :-D

Příklad:
A=:
echo : | sed s:$a:/:g # to nejde
Takže ten znak nesmí být ani v proměnné. Rozumíme si?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Marek Bernát avatar 16.8.2006 20:38 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: zmena konfigurace Xorg bez ztraty otevrenych aplikaci ve win manaz
místo lomítka použijte znak, o kterém víte, že tam nebude
Jako v té proměnné? To bohužel není možné, je to cesta.
Ne v proměnné, ale v zápisu sed.
I v proměnné...
Problém je v tom, že logicky sa odkazuješ na pána Kubečka, ale gramaticky na tie ďalšie komentáre. Ja som reagoval na gramatiku, lebo jazyk je prvé, čo vnímam. Nemám chuť lúštiť, koľko vrstiev konšpirácií sa pod jednotlivými komentármi skrýva. Teda teraz už mám, ale to je iné, už som sa do toho zaplietol ;-)
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
Jardík avatar 15.8.2006 21:44 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bohatě by mi stačilo nějak escapovat obsah té proměnné, ale jak?
Věřím v jednoho Boha.
David Watzke avatar 15.8.2006 23:24 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: sed - znak "/" v nahrazovaném řetězci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Snad jsem to nezeslonil...
sed -e "s:\${INSTALL_DIR}:${INSTALL_DIR}:g" \
    -e "s:\${INSTALL_DIR}:${INSTALL_DIR}:g" \
    -e "s:\${CFLAGS}:${CFLAGS}:g" \
>> "${DEST_DIR}/bin/toolkit-config"
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 15.8.2006 23:28 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: sed - znak "/" v nahrazovaném řetězci
Možná by bylo vhodnější zvolit místo dvojtečky neobvyklejší znak...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

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.