Hello Guest, if you reading this it means you have not yet registered. Please take a second to Click here to register and in a few simple steps, you will be able to enjoy all the many features of our fine community. Please note that nicknames are prohibited lewd or meaningless (no numbers or letters at random) and introduce yourself in the section for you to meet our community.
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
    Siła Reputacji
    41
    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
    Siła Reputacji
    115
    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
    Siła Reputacji
    41
    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
    39
    Postów
    3,675
    Wątków
    214
    Siła Reputacji
    159
    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
    39
    Postów
    3,675
    Wątków
    214
    Siła Reputacji
    159
    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
  •