Witaj Gościu, jeżeli to czytasz to znaczy że nie jesteś zarejestrowany/zalogowany. Kliknij by się zarejestrować. Rejestracja zajmie mniej niż 30 sekund , a dzięki temu zniknie Ci ten dymek oraz będziesz miał pełne możliwośći personalizacji forum do własnych potrzeb.
Przeskryptowanie CSV
Pokaż wyniki od 1 do 5 z 5

Temat: Przeskryptowanie CSV

  1. #1
    Avatar Saddamus
    Saddamus jest nieaktywny Bulgotnik Wanienny
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • Betonowa
      • Procesor:
      • Intel(R) Celeron(R) CPU 540@ 1.86GHz
      • Karta Graficzna:
      • Intel X3100
      • Karta Dźwiękowa:
      • intel
      • Monitor:
      • LCD
      • Kernel:
      • 2.6.26-1-amd64
    Dystrybucja: Rozwojowa *.deb
    Dołączył
    Aug 2004
    Skąd
    Wrocław
    Wiek
    36
    Postów
    1,271
    Wątków
    129
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    40
    Reputacja
    178

    Przeskryptowanie CSV

    Szanowni towarzysze.
    Jest sobie plik CSV w takiej formie
    Kod:
    A;B;C1,C2,C3,C4;D
    Bardzo duzo linii tego pliku z rozna liczba wartosci C, czyli raz moze byc C1,C1, innym razem C1,C2,C3,C3,itd
    Chodzi o to, zeby ten plik wygladal tak
    Kod:
    A;BC1;D
    A;BC2;D
    A;BC3;D
    Dla lepszego zobrazowania wklejam kawalek pliku
    Kod:
    Poland Era GSM Mobile;48;600, 602, 604, 606, 608, 660, 662, 664, 6660, 6661, 6662, 6663, 6664, 6665, 6667, 6668, 6669, 668, 692, 694, 696, 698, 7272, 7273, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 784, 787, 788, 795, 880, 8811, 8818, 882, 8833, 8838, 884, 886, 888, 889;0.0692
    Poland Orange Mobile;48;50, 51, 690, 780, 786, 789, 797, 798, 799;0.0533
    Poland Other;48;;0.0096
    Poland P4 Mobile;48;790, 791, 792, 793, 794, 796;0.1087
    Poland Plus GSM Mobile;48;601, 603, 605, 607, 609, 661, 663, 665, 667, 669, 691, 693, 695, 697, 721, 722, 723, 724, 725, 726, 7274, 7275, 7276, 7277, 7278, 7279, 781, 782, 783, 785, 885, 887;0.0461
    Poland Polsat Mobile;48;69900, 69902, 69903, 69904, 69905, 69906, 69907, 69908, 69909, 6991, 6992, 6993, 6994, 6996;0.1961

    Any idea ?
    Ostatnio edytowane przez Saddamus ; 23.05.2009 o 15:48
    ROOT

  2. Panna Google
    Panna Google jest aktywna
    Avatar Panny Google

    Dołączył
    01-05-2004
    Skąd
    Internet
    Postów
    999
    Pochwał
    159

    Nie lubisz reklam? Zarejestrowani ich nie widzą! Rejestracja





  3. #2
    Avatar sillon
    sillon jest nieaktywny Sprzedawca Żywopłotów
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • Gigabyte GA-K8NS S754
      • Procesor:
      • AMD Sempron 2800+ 64bit
      • Karta Graficzna:
      • Gigabyte Redeon 9550
      • Karta Dźwiękowa:
      • AC'97 Audio Controller (rev a1; nForce3 250Gb)
      • Monitor:
      • LG W2052V (20'')
      • Kernel:
      • 2.6.26.5
    Dystrybucja: Debian squeeze
    Dołączył
    Mar 2005
    Skąd
    Jelenia Góra/Warszawa
    Wiek
    33
    Postów
    140
    Wątków
    4
    Downloads
    0
    Uploads
    0
    Siła Reputacji
    114
    Reputacja
    1331

    Odp: Przeskryptowanie CSV

    Hej,
    coś takiego wykombinowałem ;P
    1. Dane wejściowe:
    Cytat Napisał Saddamus
    Dla lepszego zobrazowania wklejam kawalek pliku
    Kod:
    Poland Era GSM Mobile;48;600, 602, 604, 606, 608, 660, 662, 664, 6660, 6661, 6662, 6663, 6664, 6665, 6667, 6668, 6669, 668, 692, 694, 696, 698, 7272, 7273, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 784, 787, 788, 795, 880, 8811, 8818, 882, 8833, 8838, 884, 886, 888, 889;0.0692
    Poland Orange Mobile;48;50, 51, 690, 780, 786, 789, 797, 798, 799;0.0533
    Poland Other;48;;0.0096
    Poland P4 Mobile;48;790, 791, 792, 793, 794, 796;0.1087
    Poland Plus GSM Mobile;48;601, 603, 605, 607, 609, 661, 663, 665, 667, 669, 691, 693, 695, 697, 721, 722, 723, 724, 725, 726, 7274, 7275, 7276, 7277, 7278, 7279, 781, 782, 783, 785, 885, 887;0.0461
    Poland Polsat Mobile;48;69900, 69902, 69903, 69904, 69905, 69906, 69907, 69908, 69909, 6991, 6992, 6993, 6994, 6996;0.1961
    2. Skrypt:
    Kod:
    #!/bin/bash
    
    exec 6< $1
    
    # wczytuje kolejne wiersze;
    while read -u 6 linia
    do
    	#sprawdza czy sa puste pola tak jak w Poland Other i znakuje;
    	linia=`echo $linia| sed -e 's/;;/;SILLONMARK;/g'`
    	#wyciaga pierwszy czlon;
    	A=`echo $linia| sed -e 's:\(.*\);\(.*\);\(.*\);\(.*\):\1:'`
    	#wyciaga drugi czlon;
    	B=`echo $linia| sed -e 's:\(.*\);\(.*\);\(.*\);\(.*\):\2:'`
    	#wyciaga trzeci czlon i wpisuje do tablicy;
    	C=(`echo $linia |sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\)/\3/' |  sed -e 's/, /\n/g'`)
    	#wyciaga czwarty czlon;
    	D=`echo $linia| sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\)/\4/'`
    	#sprawdza ilosc elementow w tablicy;
    	max_tab=${#C[@]}
    	#dla kazdego elementu....;
    	for  ((a=0 ;  a<max_tab; a++))
    	do 
    		#sprawdza czy byly puste linie, jezeli tak kasuje 'oznaczenia';
    		if [ ${C[$a]} = "SILLONMARK" ]
    		 then
    			C[$a]=";"
    		fi
    		#zapis wyniku do pliku;
    		echo $A';'$B${C[$a]}';'$D>>$2
    	done
    done
    
    # zamknij plik;
    exec 6<&-
    3. Wyniki
    Kod:
    Poland Era GSM Mobile;48600;0.0692
    Poland Era GSM Mobile;48602;0.0692
    Poland Era GSM Mobile;48604;0.0692
    Poland Era GSM Mobile;48606;0.0692
    Poland Era GSM Mobile;48608;0.0692
    Poland Era GSM Mobile;48660;0.0692
    Poland Era GSM Mobile;48662;0.0692
    Poland Era GSM Mobile;48664;0.0692
    ----------CIACH--------
    Poland Polsat Mobile;486992;0.1961
    Poland Polsat Mobile;486993;0.1961
    Poland Polsat Mobile;486994;0.1961
    Poland Polsat Mobile;486996;0.196
    4. Skrypt przyjmuje dwa parametry: pierwszy plik wejściowy, drugi plik wynikowy (nie ma sprawdzania czy oba parametry są podane)
    Kod:
    morhen@debian:~/tmp$ ./hell.sh dane.txt wyniki.txt
    5. Dane z pliku wynikowego są dopisywane
    6. U mnie działa

    Pozdrawiam,





    Reputacja przyznana temu postowi
    Łącznie punktów reputacji: 33

    Komentarze:
     Saddamus  zgadza się  
    Linux Registered User #383385
    "(...) I staniemy sie pasterzami na Twoją Panie chwałę, od Ciebie pochodzi moc nasza, Twoją wypełniamy wolę, do Ciebie kierujemy swe kroki by u Twojego zasiąść tronu...In nomine patri et filii et spiriti sanctum..."
    "The Boondock Saints"

  4. #3
    Avatar Saddamus
    Saddamus jest nieaktywny Bulgotnik Wanienny
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • Betonowa
      • Procesor:
      • Intel(R) Celeron(R) CPU 540@ 1.86GHz
      • Karta Graficzna:
      • Intel X3100
      • Karta Dźwiękowa:
      • intel
      • Monitor:
      • LCD
      • Kernel:
      • 2.6.26-1-amd64
    Dystrybucja: Rozwojowa *.deb
    Dołączył
    Aug 2004
    Skąd
    Wrocław
    Wiek
    36
    Postów
    1,271
    Wątków
    129
    Downloads
    3
    Uploads
    0
    Siła Reputacji
    40
    Reputacja
    178

    Odp: Przeskryptowanie CSV

    Wielkie dzieki
    ROOT

  5. #4
    Avatar Sir_Yaro
    Sir_Yaro jest nieaktywny Były Administrator
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • ThinkPad T500
      • Procesor:
      • Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
      • Karta Graficzna:
      • ATI HD3650
      • Karta Dźwiękowa:
      • Conexant 20561
      • Monitor:
      • TFT WSXGA+
      • Kernel:
      • 3.2.0-34
    Dystrybucja: Kubuntu 14.04 LTS
    Polska
    Dołączył
    Jan 2004
    Skąd
    Gdansk
    Wiek
    38
    Postów
    3,675
    Wątków
    214
    Downloads
    27
    Uploads
    31
    Siła Reputacji
    158
    Reputacja
    1854

    Odp: Przeskryptowanie CSV


    widze ze juz jestem nie potrzebny

  6. #5
    Avatar Sir_Yaro
    Sir_Yaro jest nieaktywny Były Administrator
    Mężczyzna
    • Platforma sprzętowa
      • Płyta Główna:
      • ThinkPad T500
      • Procesor:
      • Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz
      • Karta Graficzna:
      • ATI HD3650
      • Karta Dźwiękowa:
      • Conexant 20561
      • Monitor:
      • TFT WSXGA+
      • Kernel:
      • 3.2.0-34
    Dystrybucja: Kubuntu 14.04 LTS
    Polska
    Dołączył
    Jan 2004
    Skąd
    Gdansk
    Wiek
    38
    Postów
    3,675
    Wątków
    214
    Downloads
    27
    Uploads
    31
    Siła Reputacji
    158
    Reputacja
    1854

    Odp: Przeskryptowanie CSV

    Swoja droga jesli musisz z tymi csv walczyc wiecej niz raz to uzyj do nich php. Sa tam prznajmniej 2 funkcje do czytania i pisania csv co ulatwia NIESAMOWICIE ich obrobke.

Informacje o wątku

Users Browsing this Thread

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Uprawnienia

  • Nie możesz zakładać nowych wątków
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •