hugo [ v5 ]
Przetwarzanie danych - czyli jak zastąpić ręczne klepanie jednym skryptem?
Ano taki dylemat mi się zrodził, mam dużą tabelę w excelu, którą muszę przetasować, problem w tym, że robienie tego ręcznie, zajmie mi olbrzymią ilość czasu... wpadłem więc na pomysł żeby przepuścić to przez jakiś skrypt (awk? bash? może sam excel?). Ale tu brakuje mi wiedzy.
Swoje dane już na tyle poprzestawiałem, że problem sprowadza się do czegoś takiego:
Mam dwa wiersze, w pierwszym wypisane cyfry, w drugim litery. Takich par jest ponad 200. I cały myk ma polegać na tym:
Krok pierwszy, cyfra 1:
1. Skrypt sprawdza pierwszy wiersz, jeśli znajduje w nim cyfrę 1 to kopiuje zawartość drugiego wiersza do zmiennej np. wynik1
2. Skrypt sprawdza trzeci wiersz, jeśli znajduje w nim cyfrę 1, dodaje do zmiennej wynik1 zawartość czwartego wiersza
I tak po ostatni wiersz, potem jest Krok 2, cyfra 2 i wynik do zmiennej wynik2. Ważne żeby skrypt szukał cyfr w wierszach nieparzystych, a do zmiennych kopiował zawartość wierszy parzystych.
Skrypt może być odpalany kilka razy, za każdym po prostu z innym parametrem, najważniejsze, żeby otrzymany wynik był jednym ciągiem znaków.
Oto przykładowe dane:
1;7;14;15;17;16;19;30;
T;Or;Efe;G;K;N;L
1;4;5;7;28;29;
T;Or;K;G;K;W;L J
1;2 ;6;7;8;10;15;16;20;21;24;25;26;29;32;
T;Or;Erg;G;L;S W;L J
6;7;8;10;21;24;26;29;
T;Pl;Erg;G;K;N;L J
1;6;7;9;10;15;17;19;24;26;29;30;
T;Or;Erg;G;K;N;J
A pożądany wynik to coś w rodzaju:
wynik1=T;Or;Efe;G;K;N;L;T;Or;K;G;K;W;L J;T;Or;Erg;G;L;S W;L J
hugo [ v5 ]
A jednak push-upek.
provos [ Clandestino ]
Przez czas pomiędzy napisaniem pierwszego i drugiego posta zdążyłbyś to wklepać kilka razy.
hugo [ v5 ]
Zapewne Twoja niezawodna, potrójna metoda dedukcji doprowadziła Cię to tak oczywistego wniosku, drogi Szerloku... ! Dziękuję Ci za dosadną i w pełni rozwiewającą wszystkie me dotychczasowe wątpliwości odpowiedź!
A teraz, do konkretów:
Zacytuję zatem sam siebie: Ale tu brakuje mi wiedzy.
A jeśli sądzisz, że przelecenie 33 razy przez 212 wierszy 'ręcznie' dałoby się zrobić w te ~12h, to gratuluję samozaparcia. Tym bardziej jeśli udałoby Ci się tego dokonać bezbłędnie.
Nie żebym próżnował przez ten czas, głębię AWK, ale nie wiem jak zmusić go do skakania co drugi wiersz. Na razie.
nagytow [ Firestarter ]
Troche zakrecony ten opis. Przede wszystkim przyklad mi nie pasuje do algorytmu. Jesli dobrze zrozumialem, to caly pomysl polega na tym, ze algorytm chodzi sobie po kolumnach tabeli. W pierwszej kolumnie szuka cyfry 1, jesli znajdzie, to dopisuje to co jest pod spodem. Potem w drugiej kolumnie szuka dwojki, w trzeciej trojki itd. Jesli mam racje, to wynik1 bedzie mial troche inna postac, zaczynal bedzie sie od T;T;T;T;Or;...
Co robic z wierszami, gdzie jest wiecej cyfr niz liter? Co robic z wierszami, gdzie jest wiecej liter niz cyfr?