Strona 1 z 1

[bash] wynik sed zamiast EOL daje spacje

: 07 gru 2009, 21:46
autor: PiKey
Witam, w bashu nie jestem najlepszy... niestety :) No i musiałem natknąć się na problem

Mam plik, przykładowo:

Kod: Zaznacz cały

variable "JakasDana"
innaZmienna "cos cos"

// jakis komentarz
cos "jakasWartosc"
Z pomocą googla wydziobałem sobie taką komendę, do zmiany linii pliku no i ponownego zapisania wyniku do tego samego pliku (zwykla podmiana danych):
echo `sed \'s/innaZmienna "cos cos"/innaZmienna "nowaDana"/g\' /media/disk/plik.txt` > /media/disk/plik.txt
Problemem jest, że powstaje plik, w którym zamiast enterów na końcach linii pojawiają się spacje
variable "JakasDana" innaZmienna "nowaDana" // jakis komentarz
Co na to zaradzić?
Macie jakieś lepsze pomysły do podmiany linijki w pliku? :wall:

Odp: [bash] wynik sed zamiast EOL daje spacje

: 07 gru 2009, 22:59
autor: otokan
Porównaj sobie

Kod: Zaznacz cały

 echo $(sed ...) 
z

Kod: Zaznacz cały

 echo "$(sed ...)" 
i zobacz sekcję 'word splitting' w manualu basha.

A tak w ogóle to Twoje zadanie należy rozwiązać

Kod: Zaznacz cały

sed -i.bak -e 's/.../.../'  plik