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

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Linuxneuling, 21.12.2005.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. 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.
     
  4. #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]
     
  5. #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
     
  6. 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
    
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #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...
     
  9. #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...