awk gibt zum Teil eine andere Zahl auch aus...

Diskutiere awk gibt zum Teil eine andere Zahl auch aus... im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Moin, ich versuche mit awk von einer .csv Datei in der Spalte 4 alle Zeilen, die ein "3" enthalten auszugeben wie folgend: awk '$4 ~ /3/'...

  1. #1 Linuxneuling, 21.12.2005
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    Moin,

    ich versuche mit awk von einer .csv Datei in der Spalte 4 alle Zeilen, die ein "3" enthalten auszugeben wie folgend:
    Code:
    awk '$4 ~ /3/' artikel.csv > artikel_3.csv
    
    Dies funktioniert nicht, da in der datei artikel_3.csv in der Spalte auch Zahlen wie 1 und 4 vorkommen... aber anscheinend nicht alle, die im artikel.csv Datei vorkommen... Was mach ich da falsch?
     
  2. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    So gut kenn ich mich mit awk nicht aus. Aber das, was ich sehe, sieht ok aus. Da "3" kein reg. Exp. ist, kannst Du // eigentlich weglassen (also statt "~ /3/" nur "~ 3"). Denke aber nicht, dass das der Fehler ist.

    Poste mal bitte Deine artikel.csv und artikel_3.csv, zur not teilweise, falls sie zu gross sind.
     
  3. #3 Linuxneuling, 22.12.2005
    Zuletzt bearbeitet: 22.12.2005
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    Es ändert sich leider nichts, wenn ich // weglasse...

    Hier poste ich ein Teil der artikel.csv
    Code:
    108838	Superlux 40W E27 230V                   	0	4
    108839	Reflektorlampe 40W R63 E27              	0	4
    108840	Benedikt & J„ger Relais R20-11 20A      	0	3
    108841	Siemens Einzelrahmen Titanweiá 80x80    	0	4
    108842	Netzfreischalter NFA60 230V 16A         	0	4
    108843	Siemens Taster 5TD2120                  	0	3
    108844	ABB Einbausteckdose                     	0	3
    108845	ABB Klingeltrafo TM 10 4/12V            	0	3
    108846	K&N Umschalter CH10 A241-600FT2         	0	3
    108847	Kabelschelle 18-22mm DK7097             	0	3
    108848	"Leitungswarnband ""Postkabel""         ;    0;   3;
    00108849       ;Fassung E27 Messing                     ;    0;   3;
    00108850       ;Porzelanfassung E27                     ;    0;   3;
    00108851       ;Isolierstofffassung E27 glatt Bakalit   ;    0;   3;
    00108852       ;Abluftschlauch weiss                    ;    0;   3;
    00108853       ;Lichterkettenfassung E27                ;    0;   3;
    00108854       ;Aussenleuchte ES 32204                  ;    0;   3;
    00108855       ;Opal Lampe 240                          ;    0;   4;
    00108856       ;Spiegelleuchte Braun + Schalter         ;    0;   3;
    00108857       ;Spiegelleuchte 8601-06 + Schalter       ;    0;   3;
    00108858       ;T?rstation LT 501                       ;    0;   4;
    00108859       ;T?rstation SM504                        ;    0;   4;
    00108860       ;T?r”ffner eff2400 12V                   ;    0;   3;
    00108861       ;Ritto T?rsprechmodul                    ;    0;   4;
    00108862       ;Musikmodul 410                          ;    0;   3;
    00108863       ;Gong 220V Nr.308                        ;    0;   4;
    00108864       ;LT Einbaufassung                        ;    0;   3;
    00108865       ;Tafelblech vz. 2000/1000/2              ;    0;   3;
    00108866       ;Gips                                    ;    0;   3;
    00108867       ;Abstandsbolzen 6S45                     ;    0;   3;
    00108868       ;Zierschrauben 6DB                       ;    0;   3;
    00108869       ;Plexiglas 2mm                           ;    0;   3;
    00108870       ;Kabelverbinder-Kabeltyp 412 GT-412-SP-03;    0;   0;
    00108871       ;Brunnenschaum                           ;    0;   4;
    00108872       ;Kabelverbinder f?r 412 GRS-412-SP-A-01  ;    0;   0;
    00108874       ;Plexiglas 2mm                           ;    0;   0;
    00108875       ;Kabel RG 11 Standard 4fach geschirmt    ;    0;   3;
    00108876       ;Zus„tzlicher Datentransfer              ;    0;   0;
    00108877       ;Haus-Verst„rker passiv TDA-R-65-15      ;    0;   3;
    00108878       ;Pr?fprotokoll                           ;    0;   0;
    00108879       ;F-Verbinder                             ;    0;   3;
    00108880       ;F-Stecker F?r Kabeltyp RG6 - 3f.gesch.  ;    0;   3;
    00108882       ;F-Ger„teanschluss fernspeisetauglich    ;    0;   3;
    00108883       ;Verbindungsblock 2x5/8 Zoll Gewinde     ;    0;   3;
    00108884       ;Abschlusswiderstand G-TRM 5/8 Zoll      ;    0;   3;
    00108885       ;Verteiler 2fach mit F-Abschlusswiderst. ;    0;   3;
    00108886       ;Abzweiger 2x8 dB mit F-Abschlusswiderst.;    0;   3;
    00108887       ;Abzweiger 4x11dB mit F-Abschlusswiderst.;    0;   3;
    00108888       ;Abzweiger 4x14dB mit F-Abschlusswiderst.;    0;   3;
    00108889       ;Abzweiger 2x11dB mit F-Abschlusswiderst.;    0;   3;
    00108890       ;Abzweiger 2x14dB mit F-Abschlusswiderst.;    0;   3;
    00108891       ;Abzweiger 2x17dB mit F-Abschlusswiderst.;    0;   3;
    00108892       ;Mini-Abzweiger TGT8-11T 8x11dB          ;    0;   3;
    00108893       ;F-Stecker schraubbar 6,5mm              ;    0;   3;
    00109972       ;F-Verteiler 2-fach 3,7db FV 2G          ;    0;   3;
    00109973       ;TV-Empf„ngeranschlusskabel 2,5m HZ-472  ;    0;   3;
    00109974       ;TV-Empf„ngeranschlusskabel 1,5m HZ-471  ;    0;   3;
    00109975       ;R?ckwegsperre                           ;    0;   3;
    00109976       ;Anschlusskabel  2m  100 Hz              ;    0;   3;
    00109977       ;Anschlusskabel  1,5m  100 Hz            ;    0;   3;
    00109980       ;Kabelstecker CFS-11                     ;    0;   3;
    00109981       ;Abzweiger 1x8 db                        ;    0;   3;
    00109982       ;F-Winkelstecker                         ;    0;   3;
    00109983       ;Leitungswarnband Achtung Antennenkabel"""	0	3
    1099831	Dichtband B1-3 (9,1m/Rolle)             	0	3
    109984	BSD 965-00 Breitband Antennendose       	0	3
    109985	BSS-Zweifachverteiler                   	0	3
    109986	MSE-Zweifachverteiler                   	0	3
    1099861	F-Verteiler 4-fach                      	0	3
    109987	F-Stecker                               	0	3
    1099871	F-Stecker GF6                           	0	3
    
    und ein Teil der artikel3.csv
    Code:
    108838	Superlux 40W E27 230V                   	0	4
    108843	Siemens Taster 5TD2120                  	0	3
    108847	Kabelschelle 18-22mm DK7097             	0	3
    108854	Aussenleuchte ES 32204                  	0	3
    108863	Gong 220V Nr.308                        	0	4
    108870	Kabelverbinder-Kabeltyp 412 GT-412-SP-03	0	0
    109972	F-Verteiler 2-fach 3,7db FV 2G          	0	3
    109983	Leitungswarnband Achtung Antennenkabel"""	0	3
    1099831	Dichtband B1-3 (9,1m/Rolle)             	0	3
    3193	Kabelbinder natur 368x4,8mm (7603)      	0	3
    3739	Kabelbinder 190x4,8 (7613)              	0	3
    40430	Zylinderkopfschraube m.SL 4,8VZ M4x30   	0	3
    40630	Zylinderkopfschraube m.SL 4,8VZ M6x30   	0	3
    7522	Klingeltaster Teraneo Nr. 3,Legr75x22mm 	0	3
    81639	QU-Dosendeckel D 100 31326              	0	4
    
    Kann mir jemand erklären, warum ich in der 4 Spalte auch ein 0 1 und 4 drinnen habe... Ich will einfach nur die artikel, die in der 4 Spalte ein 3 haben...

    [EDIT] Bitte nicht täuschen, da nicht alle Zeilen ein Semilokon haben... Es haben lt. vi alle, aber warum diese nicht zum posten mitkopiert wurden kann ich nicht sagen... [/EDIT]
     
  4. #4 ninguno, 22.12.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    so sollte es gehen
    Code:
    awk -F';' '$4==3' artikel.csv > artikel_3.csv
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Der Fehler liegt darin, dass die Bezeichner in Deiner 2 Spalte Leerzeichen haben. awk nimmt diese Leerzeichen als Begrenzer für die Spalten, was heisst, dass z.B. die erste Zeile Deiner artikel.csv 7 Spalten hat.

    ninguno's Lösung erschlägt nicht die ersten Zeilen von artikel.csv, da da keine ";" vorhanden sind. Ich denke, dass zwischen den Spalten Tabs sind, also versuch mal folgendes:

    Code:
    awk -F'\t' '$4 ~ 3' artikel.csv > artikel_3.csv
    
     
  6. #6 Linuxneuling, 22.12.2005
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    SUper, das Beispiel von ninguno funktioniert, weil in der csv Datei die Spalten mit Semilokon getrennt sind... Wie mache ich wenn ich zwei Zahlen haben möchte z. B: Es sollen Zeilen sortiert werden die eine 1 und 3 enthalten...
     
  7. #7 Xanti, 22.12.2005
    Zuletzt bearbeitet: 22.12.2005
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Die ersten Zeilen Deiner artikel.csv enthalten keine ";", aber egal. Zu Deiner zweiten Frage:

    Code:
    awk '/1/ && /3/' artikel.csv |sort > artikel_3.csv
     
Thema:

awk gibt zum Teil eine andere Zahl auch aus...

Die Seite wird geladen...

awk gibt zum Teil eine andere Zahl auch aus... - Ähnliche Themen

  1. AMD gibt CodeXL 2.0 im Quellcode frei

    AMD gibt CodeXL 2.0 im Quellcode frei: AMD hat sein Debugging- und Profiling-Tool, CodeXL, in der Version 2.0 veröffentlicht. Zugleich hat das Unternehmen die Verfügbarkeit des...
  2. awk: warum gibt close -1 zurück ?

    awk: warum gibt close -1 zurück ?: Hallo, bei diesem Gawk-Skript liefert close() ein -1 zurück. Warum ? Das File sortiert.txt wurde erfolgreich von sort angelegt ... Ist ein close...
  3. Microsoft gibt Visual Studio Productivity Power Tools frei

    Microsoft gibt Visual Studio Productivity Power Tools frei: Microsoft gibt erneut Werkzeuge für Entwickler auf GitHub frei. Diesmal handelt es sich um die Productivity Power Tools für Visual Studio....
  4. Croteam gibt Quellen der Serious Engine 1 frei

    Croteam gibt Quellen der Serious Engine 1 frei: Der hinter Spieletiteln wie »Serious Sam« und »The Talos Principle« stehende Entwickler »Croteam« hat die Quellen seiner »Serious Engine 1«...
  5. Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei

    Jetbrains gibt JVM-Programmiersprache Kotlin 1.0 frei: Jetbrains, Entwickler der freien Entwicklungsumgebung für Java, Grails und einige andere Programmiersprachen IntelliJ IDEA, hat die selbst...