CSV Datei in Array einlesen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von pod32, 23.11.2008.

  1. #1 pod32, 23.11.2008
    Zuletzt bearbeitet: 23.11.2008
    pod32

    pod32 Mitglied

    Dabei seit:
    29.05.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo,

    ich habe eine CSV Datei folgender Gestalt:

    Code:
    21022009 root du-h
    22022009 user1 ls
    (zugegeben: ein bisschen länger und mehr Spalten.)

    Das Trennzeichen ist der Tabulator \t

    Mein fehlerhaftes Skript schaut im mom so aus...
    Code:
    #!/bin/bash
    function file2arr(){
            local count=0
            while read LINE; do
                    arr_$count=($LINE)
                    ((count++))
            done < $1
            #echo ${arr_0[0]}
            #echo ${arr_0[0]}
            #echo ${arr_1[1]}
    }
    ...
    file2arr $1
    ...
    
    Was ich eigentlich möchte ist ein 2D-Array :devil: was es leider nicht gibt.
    Also habe ich es mir so gedacht, dass ich in den eckigen Klammern die Zeile speichere und den Variablennamen als Spalte missbrauche.

    Nun steck ich fest und probier schon ewig rum... :hilfe2:
    hier wird das analysieren eines Strings wo \t vorkommen beschrieben könnte man das für jede Zeile anwenden...?

    Danke!!!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Waere es nicht sinnvoller, Programme wie awk, cut oder sogar perl fuer die bevorstehende Aufgabe zu nutzen?
     
  4. pod32

    pod32 Mitglied

    Dabei seit:
    29.05.2006
    Beiträge:
    42
    Zustimmungen:
    0
    hmm jo - Perl einzusetzen habe ich mir auch schon überlegt.
    Dann Arbeite ich mich da mal ein (hab da bisher noch quasi nix gemacht).

    Sollte doch jmd. eine Antwort haben - für Suchende, denen es ähnlich geht sicher hilfreich!
     
  5. #4 mathiko, 24.11.2008
    Zuletzt bearbeitet: 24.11.2008
    mathiko

    mathiko Konix

    Dabei seit:
    08.10.2004
    Beiträge:
    21
    Zustimmungen:
    0
    Ort:
    Potsdam
    Hi!

    in Perl ...

    open(READ,"datei.csv") or die $!;
    while my $line (<READ>){
    if($line=~/\d+\t/){
    my @liste = split("\t",$line);
    print $liste[0];
    # ... oder als Hash/Array speichern
    }
    }
    close READ;

    sollte funktionieren ;-)

    Grüße,
    MathiKo
     
  6. #5 pod32, 25.11.2008
    Zuletzt bearbeitet: 25.11.2008
    pod32

    pod32 Mitglied

    Dabei seit:
    29.05.2006
    Beiträge:
    42
    Zustimmungen:
    0
    @mathiko: hmmm... leider nein:

    Code:
    syntax error at csv_reader.pl line 8, near "$line ("
    Global symbol "$line" requires explicit package name at csv_reader.pl line 9.
    syntax error at csv_reader.pl line 12, near "}"
    Execution of csv_reader.pl aborted due to compilation errors.
    [/CODE
    
    und hier der quasi gleiche code :brav:
    
    [CODE]
         1  #!/usr/bin/perl
         2  # file: csv_reader.pl
         3  use strict;
         4  use IO::File;
         5  
         6  open(READ,"datei.csv") or die $!;
         7  
         8  while my $line (<READ>){
         9  	if($line=~/\d+\t/){
        10  		my @liste = split("\t",$line);
        11  		print $liste[0];
        12  	}
        13  }
        14  close READ;
    
    gruß
    pod32
     
  7. #6 SkydiverBS, 25.11.2008
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Hallo pod32,

    die richtige Syntax für Zeile 8 ist folgende:
    Code:
         8  while (my $line = <READ>){
    Siehe Perl File Handling.

    Gruß,
    Philip
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

CSV Datei in Array einlesen

Die Seite wird geladen...

CSV Datei in Array einlesen - Ähnliche Themen

  1. Array im Dateinamen wird nicht erkannt

    Array im Dateinamen wird nicht erkannt: Sry das ick schon wieda störe aba ich habe ein kleines Problem. Ich würde gern in einer Datei namens xyz.num6 eine gewisse Zeile ersetzen....
  2. kann keinen Text und Array in eine Datei speichern

    kann keinen Text und Array in eine Datei speichern: kann mir mal bitte einer sagen was daran falsch ist? syntax error near unexpected token `>>' ` echo "Server...
  3. Zahlenwerte von Datei in 2Dim-Array lesen

    Zahlenwerte von Datei in 2Dim-Array lesen: Nach mehrstündiger Suche bin ich mittlerweile wirklich verzweifelt und komme als C++ Quasi-Jungfrau (zumindest komm' ich mir so vor) einfach nicht...
  4. Verz. oder Datei im Array

    Verz. oder Datei im Array: Im Directory x sind sub dircectories und Dateien, Wie kann ich die Dateinamen rausnehmen und nur die Verzeichnisnamen im Array weiter verwenden?...
  5. Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...

    Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...: Ich habe eine Textdatei in der ich Einträge bis zum 3. Leerzeichen mit den restlichen Zeilen (auch nur bis 3. Leerzeichen) vergleichen muss und...