sed i "\"

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

sed i "\"

Post autor: kodama »

Cześć, mam taki prosty kawałek kodu:

Kod: Zaznacz cały


while read line; do
    
     egrep -q "$line" jeden.txt
            if [ "$?" == "0" ] ; then

             sed -i /"$line"/d jeden.txt

            fi

 done<dwa.txt
 
Otóż pobieram sobie po kolei linijki z pliku dwa.txt i sprawdzam czy istnieją w pliku jeden.txt. Jeżeli istnieją, to mają zostać usunięte z jeden.txt. Problem jest taki, że w tym pliku dwa są różne ciągi tekstowo-liczbowe. Jeśli zdarzy się na przykład

Kod: Zaznacz cały

costamcostam122343546te3\1
to linijka z sed'em się nie wykona, bo dla niego ten "\1" zostanie potraktowany jako polecenie seda. Pytanie - jak to wyeskejpować? :P Albo zrobić co innego?

Moje "na szybko" wymyślone obejście, to wycięcie z obydwu plików slashy i backslashy - i to działa. Ale założę się, że jest jakiś bardziej elegancki sposób na rozwiązanie tego ;] Ktoś może podrzucić pomysł jakiś?

DODANE
Niestety okazuje się, że nie mogę sobie tych slashy tak wycinać, bo są trochę istotne czasami. Nie ma ktoś jakiegoś pomysłu jak to zrobić? Przeglądałem stacoverflowy i inne fora ale żadne z rozwiązań u mnie nie działa.
ODPOWIEDZ