Portál AbcLinuxu, 12. května 2025 10:28

Dotaz: nahrazeni cest pomoci sed

29.3.2010 12:29 ext3fs
nahrazeni cest pomoci sed
Přečteno: 177×
Odpovědět | Admin
Ahoj, potrebuji poradit s nahrazenim cesty viz nasledujici priklad:
#!/bin/bash

STR=/bin/bash
sed "s/XXX/$STR/g" -i ./test.txt
# test.txt obsahuje pouze XXX
vysledek: sed: -e výraz #1, znak 8: unknown option to `s'

Poradi nekdo? Sedu se ocividne nelibi znaky '/' v $STR.

Diky.

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

Odpovědi

29.3.2010 12:36 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: nahrazeni cest pomoci sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
třeba sed "s~XXX~$STR~g" -i ./test.txt
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
29.3.2010 12:53 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: nahrazeni cest pomoci sed
Místo ~ by byla o chlup lepší dvojtečka, protože ta se v cestě typicky nevyskytuje (vs. domovský adresář). Popř. nejdřív provést STR=`echo "$STR" | sed 's#:#\\:#g'`.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
kouby avatar 29.3.2010 13:49 kouby | skóre: 27 | blog: init | Praha
Rozbalit Rozbalit vše Re: nahrazeni cest pomoci sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použití sedu je trochu overkill na tak jednoduché nahrazení.

Pokud používáte bash, jak je vidět z ukázky, tak můžete použít jednoduché nahrazení proměnné.
#!/bin/bash
VAR=XXX
STR=/bin/bash
echo ${VAR/XXX/$STR}
Více naleznete zde: Bash: Parameter substitution.
That's thirty minutes away. I'll be there in ten.

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.