Skocz do zawartości
Zaloguj się, aby obserwować  
regdos

Wyszukiwanie danych w plikach tekstowych

Polecane posty

Problem wygląda następująco:

Mam dwa pliki tekstowe a.txt i b.txt, każda linia to jakaś dana, chciałbym dla każdej linii z pliku a.txt sprawdzić czy dana linia występuję w pliku b.txt i jeżeli jej nie ma to zapisać ją jako linia do pliku wynikowym c.txt

 

Zakładam, że problem jest do rozwiązania w bash lub perl, proszę dajcie jakieś wskazówki jakich programów użyć i mniej więcej jak.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może coś w tym stylu..

 

while read line; do grep ${line} b.txt || echo ${line} >> c.txt; done < a.txt

 

Do porównywania plików jest diff

 

W Perl'u chyba można to zrobić przez Tie::File

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Do porównywania plików jest diff

 

Że ja o diff nie pomyślałem a nadaje się wyśmienicie

 

diff a.txt b.txt | grep "<" | cut -c 3-  > del.txt
diff a.txt b.txt | grep ">" | cut -c 3-  > add.txt

 

w del.txt mam te wiersze z a.txt, których nie ma w b.txt

w add.txt są te wiersze z b.txt, których nie ma w a.txt

 

tak miało być, dzięki za nakierowanie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Problem wygląda następująco:

Mam dwa pliki tekstowe a.txt i b.txt, każda linia to jakaś dana, chciałbym dla każdej linii z pliku a.txt sprawdzić czy dana linia występuję w pliku b.txt i jeżeli jej nie ma to zapisać ją jako linia do pliku wynikowym c.txt

 

a jesli jest w pliku b.txt a nie mam jej w pliku a.txt to takze zapisac do pliku c.txt czy ignorowac ?

 

g.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
a jesli jest w pliku b.txt a nie mam jej w pliku a.txt to takze zapisac do pliku c.txt czy ignorowac ?

To wtedy zapisywać do do pliku d.txt :)

Ale idealne dla mnie rozwiązanie znalazłem używając diff-a, dokładnie takie o jakie mi chodziło.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×