Spalten in csv Datei entfernen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
blaubaer
Beiträge: 417
Registriert: 20.02.2003 13:57:01
Lizenz eigener Beiträge: MIT Lizenz

Spalten in csv Datei entfernen

Beitrag von blaubaer » 22.06.2006 12:50:44

moinsen,

ich bin auf der Suche nach einem prog, mit dem ich in einer .csv Datei einzelne Spalten entfernen kann. Ich habe z.B die Datei:

Code: Alles auswählen

"A","B","C","D","E"
"a","b","c","d","e"
und möchte die ersten zwei Spalten entfernen, so dass ich anschließend

Code: Alles auswählen

"C","D","E"
"c","d","e"
erhalte.

Geht das irgendwie mit sed oder perl oder...?

danke
Blaubaer

tobreh
Beiträge: 32
Registriert: 09.04.2003 08:21:26

Beitrag von tobreh » 22.06.2006 12:55:01

Hi.

cut ist dein Freund

Code: Alles auswählen

cut -d ',' -f '2-' mycsv.csv
Gruß,

Tobias

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 22.06.2006 13:21:15

Da ich immer diese ganzen Paramter vergesse, mache ich es meist anders. Ich nutze ein (fast) fertiges Perl-Script, welches ich entsprechend anpasse.

Code: Alles auswählen

#! /usr/bin/perl

@eintrag = <STDIN>;

foreach $ent (@eintrag)                                                                  
{ 
  $ent =~ s/\s+$// ;
  @e = split (",", $ent);
  ### ab hier rumrechnen  ... und dann ausgeben ###
  for ($i=2;$i<=@e;$i++)
  { 
    print @e[$i];
    if ($i < @e) { print ","; }
} 
  print "\n";
}
Aufruf: script.pl < datei.csv

Benutzeravatar
blaubaer
Beiträge: 417
Registriert: 20.02.2003 13:57:01
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blaubaer » 22.06.2006 13:32:45

jo, danke.
funktioniert fast
ich erhalte nun

Code: Alles auswählen

B,"C","D","E"
b,"c","d","e" 
d.h die 2. Spalte wird nicht gelöscht, dafür aber die Anführungszeichen entfernt.
ansonsten bin ich auch auf der Suche nach einer Lösung, die für Lin und für Win funktioniert. Gibt es cut auch für win?

Blaubaer

Benutzeravatar
blaubaer
Beiträge: 417
Registriert: 20.02.2003 13:57:01
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blaubaer » 22.06.2006 13:43:32

ups, sorry,

das mit den Anführungszeichen ist Unsinn - mein Fehler
Blaubaer

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 22.06.2006 13:43:50

Unter Windows kannst du dir z.B. cygwin installieren. Damit hast du eine riesen Auswahl von Linux-Tools auch unter Windows. Das beginnt bei den Shells und endet bei Dingen wie X-Server, Apache und Datenbanken wie Postgresql.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.06.2006 13:51:45

MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

mullers

Beitrag von mullers » 22.06.2006 13:57:13

http://groups.google.de/group/de.comp.e ... c2aa?hl=de

Vielleicht ist das noch interessant

Gruss
henry

Benutzeravatar
blaubaer
Beiträge: 417
Registriert: 20.02.2003 13:57:01
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blaubaer » 22.06.2006 15:36:47

super,
vielen dank für die schnelle Hilfe. Da gibt es ja scheinbar auch für win (also auch am Arbeitsplatz) diverse Möglichkeiten, die guten Lin tools zu verwenden
ich werde mir Eure Vorschläge nachher mal geneuer ansehen

Blaubaer

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 22.06.2006 19:13:38

....mit awk:

Code: Alles auswählen

fuzzy@free:/tmp$ awk -F "," '{print$3","$4","$5}' mycsv.csv
"C","D","E" 
"c","d","e"
...sofern es "überschaubare" Dateien/Spalten sind, würde unter (g)vim auch der VisualBlock mit [Strg][v] gehen.
Bei mit geht es unter Windows mit dem vim 7.0 mit [Strg][V] und mit dem gvim 7.0 noch nicht :roll:

Gruß fuzzy

Benutzeravatar
blaubaer
Beiträge: 417
Registriert: 20.02.2003 13:57:01
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blaubaer » 23.06.2006 18:45:34

super, danke,

ich hab mir jetzt @work cygwin installiert. Endlich eine anständige Konsole mit anständigen Befehlen.

das macht das Leben wirklich einfacher.

Blaubaer

Antworten