Strona 1 z 1

[+] BASH, sed, spacje w dodawanym tekście wysypują skrypt

: 14 maja 2010, 20:25
autor: czakll
Witam serdecznie.
Borykam się z skryptem masowo edytującym pliki tekstowe po znalezieniu danego tekstu,
oto część skryptu:

Kod: Zaznacz cały

echo 'Podaj nick: '
	read nick
mv $plikdocelowy $pliktymczasowy
sed 's|;Tekstktoregoszukam|& \n"'$nick'" |' $pliktymczasowy > $plikdocelowy
Po wykonaniu skryptu i dodaniu nazwy ze spacją zwraca:

Kod: Zaznacz cały

sed: -e expression #1, char 26: unterminated `s' command
Czy da się jakoś pozbyć tego problemu?
Pozdrawiam.

: 14 maja 2010, 20:30
autor: salmon
Wszystkie zmienne powinny być w cudzysłowach.

: 14 maja 2010, 21:15
autor: czakll
salmon pisze:wszystkie zmienne powinny być w cudzysłowach

Z Twojej wypowiedzi rozumiem, że mam zamienić z :

Kod: Zaznacz cały

sed 's|;Tekstktoregoszukam|& \n"'$nick'" |' $pliktymczasowy > $plikdocelowy
na

Kod: Zaznacz cały

sed 's|;Tekstktoregoszukam|& \n""$nick"" |' $pliktymczasowy > $plikdocelowy
lecz to dodaje do pliku
"$nick"
zamiast zawartości tej zmiennej.
Do pliku chcę dopisać przykładowo:
"Nick ze spacja"
Co robię źle?

: 14 maja 2010, 23:04
autor: salmon
ok, źle popatrzyłem, spróbuj tak:

Kod: Zaznacz cały

sed "s|;Tekstktoregoszukasz|& \n\"'$nick'\" |" $pliktymczasowy > $plikdocelowy

: 15 maja 2010, 00:31
autor: czakll
Niestety, jest bez zmian :(

: 15 maja 2010, 09:42
autor: salmon
Pokaz jakiś przykład, na którym się wywala

: 15 maja 2010, 10:06
autor: Yuji

Kod: Zaznacz cały

echo 'Podaj nick: '
	read nick
mv "$plikdocelowy" "$pliktymczasowy"
sed 's|;Tekstktoregoszukam|& \n"'"$nick"'" |' "$pliktymczasowy" > "$plikdocelowy"

: 21 maja 2010, 15:35
autor: czakll
Witam po dłuższej przerwie, sposób podany przez Yuji działa. Dziękuję za poświęcony czas i pozdrawiam.