Franz Napisano Luty 21, 2008 Zgłoszenie Share Napisano Luty 21, 2008 Witam ! Mam nastepujacy problem. Mam dwa pliki tekstowe w formacie .csv (dane - adresy IP,MAC,Nazwy kart sieciowych itp.. znajduja sie w kolejnych wierszach i sa oddzielone przecinkami). np. plik1 : IP1,IP2,MAC1,MAC2,... plik2: IP3,IP4,MAC3,MAC4,... Jak najprosciej porownujac te pliki spowodowac zeby dana pobrana np. z 4-go miejsca po przecinku z pliku2 trafila na to samo miejsce w pliku1 ? Innymi slowy jak nadpisac pole w pliku1 ta nowa dana tego samego typu wyciagnieta z pliku 2, bez zmiany pozostalych danych ? Z gory bardzo dziekuje za jakakolwiek pomoc ! Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
jjj Napisano Luty 21, 2008 Zgłoszenie Share Napisano Luty 21, 2008 Jeżeli koniecznie bash, to użyj cut i paste. Ale sensowniej jest takie rzeczy robić w awk-u, perlu lub pythonie. Mniej kombinowania. Np. w Perlu odręcznie sklecony szkic może wyglądać tak: #!/usr/bin/perl $f1 = open(plik1, "plik1"); $f2 = open(plik2, "plik2"); @dane1 = <plik1>; @dane2 = <plik2>; $n = @dane1; for ($i=0; $i<$n; $i++) { @w1 = split(",",@dane1[$i]); @w2 = split(",",@dane2[$i]); print "@w1[0],@w2[1],@w1[2]"; } close(plik1); close(plik2); Przy czym profesjonalnie napisany program będzie krótszy, szybszy i mniej czytelny. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się