GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Filtern Sie eine CSV-Datei basierend auf den Werten der fünften Spalte einer Datei und drucken Sie diese Datensätze in eine neue Datei

awk -F '","'  'BEGIN {OFS=","} { if (toupper($5) == "STRING 1")  print }' file1.csv > file2.csv 

Ausgabe

"12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013",""
"23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013",""

Ich denke, das ist, was Sie wollen.


Das Problem bei CSV ist, dass es keinen Standard gibt. Wenn Sie häufig mit CSV-formatierten Daten arbeiten müssen, sollten Sie nach einer robusteren Methode suchen, anstatt nur "," zu verwenden als Feldtrenner. In diesem Fall Perls Text::CSV CPAN-Module eignen sich hervorragend für diesen Job:

$ perl -mText::CSV_XS -WlanE '
    BEGIN {our $csv = Text::CSV_XS->new;} 
    $csv->parse($_); 
    my @fields = $csv->fields(); 
    print if $fields[4] =~ /string 1/i;
' file1.csv
"12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013",""
"23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013",""

Linux
  1. Übereinstimmende Zeile und N-te Zeile von der Übereinstimmenden Zeile drucken?

  2. Ausgabe nach Stdout und gleichzeitig Grep in eine Datei?

  3. Der Unterschied zwischen .exrc und .vimrc?

  4. Der Unterschied zwischen symbolischen und harten Links?

  5. Nehmen Sie die erste Spalte aus 2 Dateien und schreiben Sie sie in eine 3. Datei?

So verwenden Sie Awk und reguläre Ausdrücke zum Filtern von Text oder Zeichenfolgen in Dateien

So verwenden Sie Sudo und die Sudoers-Datei

So speichern Sie eine Datei in Vim / Vi und beenden den Editor

Inhalt einer Verzeichnisstruktur (Dateisystem) in CSV auf der Befehlszeile drucken?

Ausgabe der 2. Spalte einer Datei

Ändern Sie die Reihenfolge der Zeilen in einer Datei