Veröffentlicht 8. April 200817 j 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
8. April 200817 j 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
9. April 200817 j 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...)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.