[+] BASH, sed, spacje w dodawanym tek

Potrzebujesz pomocy z C, C++, perl, python, itp.
czakll
Posty: 90
Rejestracja: 22 listopada 2008, 18:57

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

Post autor: czakll » 14 maja 2010, 20:25

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.

salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon » 14 maja 2010, 20:30

Wszystkie zmienne powinny być w cudzysłowach.

czakll
Posty: 90
Rejestracja: 22 listopada 2008, 18:57

Post autor: czakll » 14 maja 2010, 21:15

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?

salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon » 14 maja 2010, 23:04

ok, źle popatrzyłem, spróbuj tak:

Kod: Zaznacz cały

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

czakll
Posty: 90
Rejestracja: 22 listopada 2008, 18:57

Post autor: czakll » 15 maja 2010, 00:31

Niestety, jest bez zmian :(

salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon » 15 maja 2010, 09:42

Pokaz jakiś przykład, na którym się wywala

Awatar użytkownika
Yuji
Posty: 27
Rejestracja: 17 maja 2009, 13:34

Post autor: Yuji » 15 maja 2010, 10:06

Kod: Zaznacz cały

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

czakll
Posty: 90
Rejestracja: 22 listopada 2008, 18:57

Post autor: czakll » 21 maja 2010, 15:35

Witam po dłuższej przerwie, sposób podany przez Yuji działa. Dziękuję za poświęcony czas i pozdrawiam.

ODPOWIEDZ