• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] csv Datei auslesen 1. Zeile auslassen.

Hallo,

ich habe ein Schleife gebastelt die diverse Dinge aus einer CSV Datei ausließt und weiter verarbeitet.
hierbei handelt es sich um ein shell script. (bash)
Code:
while read datei1; do

name=`echo $datei1 |cut -d ";" -f1`
vorname=`echo $datei1 |cut -d ";" -f2`
Adresse=`echo $datei1 |cut -d ";" -f3`

usw. usw. 
done < files.csv

Meine Frage ist. Wie kann ich das realisieren das er weis das die 1. Zeile die Spaltenüberschriften sind und er diese ignorieren soll.
Oder kann ich gar diese Überschriften als Variablennamen nehmen(auslesen)?
 
Wie kann ich das realisieren das er weis das die 1. Zeile die Spaltenüberschriften sind und er diese ignorieren soll.
Normalerweise mit einer Variable(n):
Code:
x=1

while ...
do
    if test "$x" -eq 1
    then
        headline=....
        continue
    fi

    let "x += 1"
    
    name=...
    ....
done
Kann sein, daß bash rumzickt, d.h. die Variable nicht in der Schleife kennen will. Sonst auch mal meine Seite angucken:

http://www.angelfire.com/linux/tux25/bash/bash.html

Grundsätzlich ist für Arbeiten IN Dateien Perl

http://www.angelfire.com/linux/tux25/perl/perl.html

sehr viel praktischer.

Gruß
 
Hallo!

In Perl ist es vll. sogar einfacher, weil man nicht extra die Variable definieren muss, sondern schon alles in der Standardvariablen $. enthalten ist.
$. enthaelt die aktuelle Zeilenanzahl.

Pseudocode

Code:
whlile (<FILE>) {
if ($. != "1") {
print "ignoriere erste Zeile und tue etwas\n";
}
 
Danke für die Hilfe ich habe es erst mal mit der Variante von abgdf gemacht.
Das reicht für meine Zwecke vollkommen aus an der Stelle.

Aber ihr habt natürlich recht des öfteren wurde ich darauf hingewiesen diverse Dinge in Perl zu probieren.
Das lässt sich wohl so langsam auch nicht mehr vermeiden. :)
 
Oben