Bash Shell Zeilenweise auslesen
Hallo Zusammen
Ich habe folgendes Problem: Ich möchte eine Datei zeilenweise auslesen und jede Zeile als Pattern für grep verwenden. Die Resultate möchte ich dann in ein File schreiben. Für das Zeilenweise Auslesen einer Datei habe ich schon etwas gefunden. Leider funktioniert es nicht wie gewünscht. Code:
#!/bin/bash Wenn ich das S***** ausführe, läuft es unendlich lange, macht aber gar nichts. Die Datei Organisation.txt hat ca. 6000 Zeilen und auf jeder Zeile steht eine Nummer. Die Datei MIT_TMP.tmp hat ca. 10'000'000 Zeilen. Das System ist AIX. Kann mir jemand weiterhelfen? Vielen Dank für die Hilfe Gruss struchli |
Mit awk als netter Einzeiler:
PHP-Code:
|
Zitat:
In der Datei Organisation.txt hat es ca. 6'000 Zeilen auf jeder Zeile steht eine Nummer (z.B. 4003755846) diese Nummer wiederum ist irgendwo in der Datei MIT_TMP.tmp vorhanden. Die Zeile, auf der diese Nummer vorkommt, möchte ich in eine Datei schreiben. Der grep-Befehl, der in meinem S***** steht, funktioniert auch super, wenn ich ihn auf der promt eingebe mit einer beliebigen Nummer. Trozdem vielen Dank für deine Mühe |
Ich verstehs immer noch nicht. Kannst du vllt mal ein Beispiel geben, mit Auszügen aus den Dateien?
|
Zitat:
Also in der Datei Organisation.txt steht zum Beispiel auf Zeile eins die Nummer 4003628505 In der Datei MIT_TMP.tmp kommt irgendwo eine Zeile vorhanden, auf der diese Nummer vorkommt: 12-40036285050002012Firma Coop Mercato Resega via Sonvico 5 007159837 695200Canobbio CH Das S***** soll nun, die 6000 Nummern der Datei Organisation.txt in der Datei MIT_TMP.tmp finden und die betreffende Zeile in eine neue Datei schreiben. Ist es jetzt verständlich? Gruss und Danke struchli |
Ja viel Besser!
Zitat:
Ich habe das mal mit dem von dir gegebenen Beispiel nachgebaut. Funktionert bei mir. Das du mit der grep anweisung nicht die Zeilen findest,liegt daran, dass die Zeilen die du suchst die eingelesene Nummer ja mitten in einem String haben. Deshalb mussten da noch ein paar regex ausdrücke hin. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Vielen Dank für deine Hilfe spartan-b292 es liegte am System, habe nun halt alle Dateien und das S***** auf eine Linux-Maschine verschoben. Da funktioniert es einwandfrei!!
Zitat:
Code:
blablabla@blablabla:/tmp:./mit_druck_s*****.sh PHP-Code:
|
Versuchs mal mit grep -E '.*$line.*'
Ich habe kein AIX zur Verfügung deshalb vllt heir nochmal gucken: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Zitat:
|
Sehr schön.
Du könntest noch ausprobieren ob du auch mit fgrep (kennt weniger regex, ist aber schneller) auskommst. Das könnte das S***** beschleunigen da 6000 Einträge doch schon etwas mehr sind. |
Zitat:
Vielen vielen Dank ;-) Gruss struchli |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.