Zum Inhalt springen

grep mit Position


Technician

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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....

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...