Problém se sed-em

Jano

Problém se sed-em
« kdy: 05. 02. 2014, 22:27:50 »
Ahoj, mám problém se sed-em, poradil by prosím někdo proč to nejde a jak to opravit?

Kód: [Vybrat]
co="XXXXXX"
cim="$(dirname $0)/folder/ass"
kde="/tmp/soubor"
sed -i -e "s/$co/$cim/g" $kde

Děkuji pěkně za pomoc


fsdfsdfsdf

Re:Problém se sed-em
« Odpověď #1 kdy: 05. 02. 2014, 22:38:32 »
Kód: [Vybrat]
sed -i -e "s/${co}/${cim}/g" $kde

Jano

Re:Problém se sed-em
« Odpověď #2 kdy: 05. 02. 2014, 22:48:55 »
Díky za snahu, ale to je to stejné co jsem napsal... tak že je to taky nefunkční..

clovek

Re:Problém se sed-em
« Odpověď #3 kdy: 05. 02. 2014, 23:09:27 »
Z hlavy

Kód: [Vybrat]
co="`echo "XXXXXX" | sed -e 's/\//\\\//' `"
cim="`echo "$(dirname $0)/folder/ass | sed -e 's/\//\\\//' `"
kde="/tmp/soubor"
sed -i -e "s/$co/$cim/g" $kde

clovek

Re:Problém se sed-em
« Odpověď #4 kdy: 05. 02. 2014, 23:15:40 »
Tak na 2. pokus snad:

Kód: [Vybrat]
co="`echo "XXXXXX" | sed -e 's|/|\\\/|g' `"
cim="`echo "$(dirname $0)/folder/ass" | sed -e 's|/|\\\/|g' `"
kde="/tmp/soubor"
sed -i -e "s/$co/$cim/g" $kde
[/quote]


libcha

Re:Problém se sed-em
« Odpověď #5 kdy: 05. 02. 2014, 23:22:39 »
Problém je v tom, že v proměnné $cim cpeš do sedu další lomítka, která se pletou s lomítky vymezujícími substituci.
Můžeš však místo lomítek pro substituci použít libovolný znak, často se třeba %
sed -i -e "s%${co}%${cim}%g" ${kde}
Pokud nenastane taková prelička, že by bylo % v názvu souboru, je to dobře a elegantní ;)

Jano

Re:Problém se sed-em
« Odpověď #6 kdy: 05. 02. 2014, 23:24:42 »
Tak na 2. pokus snad:

Kód: [Vybrat]
co="`echo "XXXXXX" | sed -e 's|/|\\\/|g' `"
cim="`echo "$(dirname $0)/folder/ass" | sed -e 's|/|\\\/|g' `"
kde="/tmp/soubor"
sed -i -e "s/$co/$cim/g" $kde
[/quote]

Díky moc, a můžu se zeptat, proč v tom posledním řádku nemáš tu proměnnou $kde v uvozovkách když je to řetězec? Díky

clovek

Re:Problém se sed-em
« Odpověď #7 kdy: 05. 02. 2014, 23:30:52 »
Díky moc, a můžu se zeptat, proč v tom posledním řádku nemáš tu proměnnou $kde v uvozovkách když je to řetězec? Díky
Je to copy-paste tvojho kodu, tak som to neriesil - mozno si tam chcel dat do premennej viac suborov, aj ked je to hnus.