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

Dotaz: bash - jak escapovat ' ??

hajma avatar 28.3.2006 12:54 hajma | skóre: 27 | blog: hajma | Říčany
bash - jak escapovat ' ??
Přečteno: 208×
Odpovědět | Admin
DD, chci v bash skriptu pomocí sedu vypreparovat ze souboru řádky x až y.

toto funguje ok:
cat $soubor | sed -n '5,10p'
ale toto ne (samozřejmě, protože bash díky ' nepošle sedu proměnné alébrž jejich názvy), a to jsem zkoušel přidávat zp.lomítka apod.:
cat $soubor | sed -n '$cislozacatku,$cislokoncep'
Díky za každou radu.
21 promarněných znaků
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.3.2006 13:02 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použijte dvojité uvozovky (nebo žádné) a jméno druhé proměnné dejte do složených závorek.
hajma avatar 28.3.2006 13:19 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
taky ne :-(
cat $adresar/revisions/$rev | sed -n "$cislozacatku,{$cislokonce}p"

sed: -e expression #1, char 3: unexpected `,'
21 promarněných znaků
hajma avatar 28.3.2006 14:00 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
ugh, jsem trubka, samozřejmě ...${... , není divu, že mi to nefungovalo
21 promarněných znaků
28.3.2006 14:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
Musíte číst pozorně, psal jsem, abyste do složených závorek uzavřel jméno proměnné… :-)
28.3.2006 13:18 Ondra
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, nejdřív si ujasni, proč tam vlastně ty apostrofy píšeš:-). Píšeš je tam proto, aby se právě znaky mezi nimi předaly programu jako jeden argument. Ale například si všimni, že cat $soubor | sed -n 5,10p taky funguje, zřejmě není důvod tam apostrofy psát. Ale jinak je lepší to uzavřít. Uvozovky jsou de-facto to samé co apostrofy, akorát se v nich expandují proměnné. Takže:

sed -n "$cislozacatku,${cislokonce}p" "$soubor"

ještě bez toho zbytečného cat a s názvem souboru raději také do uvozovek.
hajma avatar 28.3.2006 14:01 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: bash - jak escapovat ' ??
díky!
21 promarněných znaků

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.