Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

hi,

probiers mal mit manuellseite (villeicht findest du was)

man grep

fals nicht schreib dir ein perl script

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

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

du musst die Zeichenfolge einfach mit quotes belegen.

Gruß

Sumpfbiber

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

Originally posted by Sumpfbiber

du musst die Zeichenfolge einfach mit quotes belegen.

Gruß

Sumpfbiber

Mit Quotes belegen?!

:confused:

Was bedeutet das!?

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

Originally posted by Technician

Mit Quotes belegen?!

:confused:

Was bedeutet das!?

grep "suchtext bla bla"

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

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

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

egrep '^(.){8}test' <datei>

also alles kein Drama ... ;)

Danke!

Werd mir das mal anschauen! :)

Grüße,

Technician

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

sed -ne '/^.\{8\}test.*/p' <deine_datei>

Danke nochmal für die Hilfe!

:)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.