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.