Portál AbcLinuxu, 10. května 2025 16:36

Dotaz: Problém se sed

5.3.2013 21:50 Orlando
Problém se sed
Přečteno: 168×
Odpovědět | Admin
SPACE="ssssssssssssssssssssssssssssss"
sed -i 's/^"" "xxx"$/"" "$SPACE"/' /tmp/file
Proč se mi to nenahradí? Výsledek vypíše ....$SPACE.. ne obsah té proměnné :-( Poradíte? Díky

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

Odpovědi

5.3.2013 21:59 potato
Rozbalit Rozbalit vše Re: Problém se sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože je to v apostrofech, konkrétně celé s/^"" "xxx"$/"" "$SPACE"/. Uvnitř apostrofů se proměnné nenahrazují, pouze uvnitř uvozovek. Takže např. nahradit $SPACE za '"$SPACE"'.
5.3.2013 22:05 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Problém se sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
Text $SPACE je uzavřen v jednoduchých uvozovkách (apostrofech), a v nich jak známo není interpretován jako proměnná.
sed -i 's/^"" "xxx"$/"" "$SPACE"/' /tmp/file
       ^.........................^
Zvolil bych něco jenoduššího, třeba:
sed -i -e "s/^xxx$/$SPACE/" /tmp/file
Osobně nemám moc rád to střídání uvozovek, připadá mi to nečitelné, buď volím jednoduché, nebo složené a pak escapuji co je potřeba.
6.3.2013 00:50 Orlando
Rozbalit Rozbalit vše Re: Problém se sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky moc;)

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.