Technician Geschrieben 18. November 2002 Geschrieben 18. November 2002 Hallo, wie kann ich eine Datei zeilenweise nach einer Zeichenfolge durchsuchen (wie grep), dabei aber die Position der Zeichenfolge mit berücksichtigen? Es handelt sich hier um Dateien der Größenordnung 2000 - 8000 Zeilen, von diejenigen ausgegeben/in eine neue Datei geschrieben werden sollen, bei denen die Zeichenfolge von x bis y einen bestimmten Wert hat. Ich hoffe, ihr könnt mir da weiterhelfen! Grüße, Technician Zitieren
kiva Geschrieben 18. November 2002 Geschrieben 18. November 2002 hi, probiers mal mit manuellseite (villeicht findest du was) man grep fals nicht schreib dir ein perl script Zitieren
Technician Geschrieben 18. November 2002 Autor Geschrieben 18. November 2002 Originally posted by kiva hi, probiers mal mit manuellseite (villeicht findest du was) man grep fals nicht schreib dir ein perl script Hi, ich bin neu in UNIX und manuellseite (man grep) sagt mir gar nix Perl bringt übrigens nix - wenn, dann UNIX-Script... Gruß, Technician Zitieren
Wolle Geschrieben 18. November 2002 Geschrieben 18. November 2002 Originally posted by Technician ich bin neu in UNIX und manuellseite (man grep) sagt mir gar nix Einfach mal "man grep" in der Konsole eingeben. Das liefert dir die Beschreibung zum grep-Befehl (geht natürlich auch mit anderen Befehlen). Zu deinem Problem: grep -n liefert dir die Zeilennummer dazu.... Zitieren
Sumpfbiber Geschrieben 19. November 2002 Geschrieben 19. November 2002 du musst die Zeichenfolge einfach mit quotes belegen. Gruß Sumpfbiber Zitieren
kiva Geschrieben 19. November 2002 Geschrieben 19. November 2002 hi, warum sollte perl nichts bringen ? mit perl kann man wunderbar textdatein nach bestimmten textpasagen oder Zeichenfolgen (funktioniert sogar mit wildcats) durchsuchen un die in eine neue datei schreiben. Gruß kiva Zitieren
Technician Geschrieben 20. November 2002 Autor Geschrieben 20. November 2002 Originally posted by Sumpfbiber du musst die Zeichenfolge einfach mit quotes belegen. Gruß Sumpfbiber Mit Quotes belegen?! :confused: Was bedeutet das!? Zitieren
Technician Geschrieben 20. November 2002 Autor Geschrieben 20. November 2002 Hi Kiva, Originally posted by kiva hi, warum sollte perl nichts bringen ? mit perl kann man wunderbar textdatein nach bestimmten textpasagen oder Zeichenfolgen (funktioniert sogar mit wildcats) durchsuchen un die in eine neue datei schreiben. Gruß kiva Mir ist bekannt, dass Perl sowas kann - nur sollte das Problem nach Möglichkeit nur mittels Unix-Skript gelöst werden... Zitieren
Sumpfbiber Geschrieben 20. November 2002 Geschrieben 20. November 2002 Originally posted by Technician Mit Quotes belegen?! :confused: Was bedeutet das!? grep "suchtext bla bla" Zitieren
Technician Geschrieben 20. November 2002 Autor Geschrieben 20. November 2002 Originally posted by Sumpfbiber grep "suchtext bla bla" Gut. Den normalen grep-Befehl kenne ich. Aber ich möchte nicht einfach die Zeile(n) ausgeben, die "suchtext bla bla" enthalten, sondern die Zeilen, die zuerst z.B. 8 (beliebige) Zeichen enthalten, und dann "suchtext bla bla". Z.B., wenn mein Suchtext "test" ist, dann sollen die Zeilen zur Ausgabe gehören abcdefghtest wlerinittest 28weoUjotest weil hier immer acht beliebige Zeichen (vom Zeilenanfang her gezählt) vorkommen, danach der Text "test". Nich haben will ich z.B. xytest test skeiriwrpwi259wleookjtest sorry, vielleicht war nicht gleich klar, wie ich das meinte... Grüße, Technician Zitieren
readonly Geschrieben 20. November 2002 Geschrieben 20. November 2002 Wie wäre es mit regex? Unter Perl sollte es der etwa wie folgt aussehen. [\w]{8}test - 8 beliebige Zeichen gefolgt von test Ähnliches sollte auch mit grep möglich sein, oder Du nutzt halt awk, welches eigentlich auf jedem Unix System zu haben ist. Damit kann man solche Probleme auch sehr schön lösen. Wie immer ist man awk Dein erster Freund und Helfer. readonly Zitieren
nic_power Geschrieben 20. November 2002 Geschrieben 20. November 2002 Originally posted by readonly Ähnliches sollte auch mit grep möglich sein, oder Du nutzt halt awk, welches eigentlich auf jedem Unix System zu haben ist. Ist moeglich, zumindest die Linux-Variante kennt die Option "-e" der mal als Parameter eine regexp uebergibt. Nic Zitieren
Nachtgeist Geschrieben 21. November 2002 Geschrieben 21. November 2002 egrep '^(.){8}test' <datei> also alles kein Drama ... Zitieren
Technician Geschrieben 21. November 2002 Autor Geschrieben 21. November 2002 Danke! Werd mir das mal anschauen! Grüße, Technician Zitieren
Technician Geschrieben 21. November 2002 Autor Geschrieben 21. November 2002 Originally posted by Nachtgeist egrep '^(.){8}test' <datei> also alles kein Drama ... von den Zeilen 12345678testeeirweri wertestwerer66 abcdefghtest test a werden mir damit die ersten drei ausgegeben. Die zweite Zeile gehört aber nicht zu denen, die ich haben will - denn da stehen vor "test" nur drei Zeichen... Ach ja, wen interessiert, auf welchem UNIX ich drauf bin: HP-UX Release 11.0 (October 1997) Gruß, Technician Zitieren
Technician Geschrieben 21. November 2002 Autor Geschrieben 21. November 2002 sed -ne '/^.\{8\}test.*/p' <deine_datei> Danke nochmal für die Hilfe! 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.