ava2k3 Geschrieben 8. April 2008 Geschrieben 8. April 2008 Hi, ich hab ein einer Datei folgendes stehen: (xxxxxxxx) nun hätte ich gern nur das zwischen den Klammern also das xxxxxxxx ich hab es schon mit grep "datei" | cut -d ")" -f 1, aber damit bekomme ich nur die hintere Klammer weg. Ist bestimmt nicht schwer, aber ich bekomme es nicht hin. Hoffe mir kann jemand helfen. Gruß Sebastian Zitieren
TheFinn Geschrieben 8. April 2008 Geschrieben 8. April 2008 grep "datei" | cut -d ")" -f 1, aber damit bekomme ich nur die hintere Klammer weg. Wer hindert Dich, zwei cut-Aufrufe hintereinander zu hängen? grep '(.*)' test.txt | cut -d '(' -f 2 | cut -d ')' -f 1 Zitieren
ava2k3 Geschrieben 8. April 2008 Autor Geschrieben 8. April 2008 ich wusste nicht das es geht, bzw. meine versuche haben nicht geklappt danke Zitieren
TheFinn Geschrieben 9. April 2008 Geschrieben 9. April 2008 ich wusste nicht das es geht, bzw. meine versuche haben nicht geklappt OK, war 'ne rhetorische Frage cut ist halt eines der zahlreichen Programme, die von der Standardeingabe lesen und auf die Standardausgabe schreiben. Alle diese Programme kannst Du mit '|' zu beliebig langen und komplexen Filtern zusammenbauen. Dabei solltest Du allerdings ein wenig im Blick behalten, wie oft die entsprechende Aufgabe ausgeführt wird. Solche Filter sind sehr einfach ad hoc zu erstellen, können aber ineffizient werden, wenn man große Mengen von Daten verarbeitet. In Deinem Fall wird halt für jede passende Zeile in der Datei zweimal ein Programm gestartet. Letztlich schicker wäre da so etwas wie grep '(.*)' test.txt | sed -r -e 's/.*\((.*)\).*/\1/' Aber reguläre Ausdrücke können schnell seeehr trickreich werden (ich verhaspele mich da immer wieder mal...) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.