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

Linuxneuling

Linuxneuling

Tripel-As
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?
 
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.
 
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]
 
Zuletzt bearbeitet:
so sollte es gehen
Code:
awk -F';' '$4==3' artikel.csv > artikel_3.csv
 
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
 
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...
 
Die ersten Zeilen Deiner artikel.csv enthalten keine ";", aber egal. Zu Deiner zweiten Frage:

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

Ähnliche Themen

sed - Bitte um Unterstützung

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Zeilen behalten, die Werte in einem bestimmten Bereich enthalten

Spalten einer Datei in neue Datei integrieren.

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben