[+] 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 »

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 »

Wszystkie zmienne powinny być w cudzysłowach.
czakll
Posty: 90
Rejestracja: 22 listopada 2008, 18:57

Post 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?
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon »

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 »

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

Post autor: salmon »

Pokaz jakiś przykład, na którym się wywala
Awatar użytkownika
Yuji
Posty: 27
Rejestracja: 17 maja 2009, 13:34

Post autor: Yuji »

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 »

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