![]() |
Arbeiten mit 'grep'
Hi,
ich versuche grade mit 'grep' nach einer Textpassage zu suchen. Dabei würde ich gern Sonderzeichen berücksichtigen. Beispiel: Ausgabe der Zeile des Dienstes mit der Nummer '1'. Dafür muss ich alle Zeilen in der eine '1' vorkommt aussuchen denen gleichzeitig ein Leer- oder Tabulator-Zeichen voransteht. Wie binde ich diese Sonderzeichen ein? Mein Versuch: grep [:blank:]1/ /etc/services Leider passiert nichts. Das Kommando wird ohne Ergebnisse ausgeführt. Kann jemand helfen? |
Re: Arbeiten mit 'grep'
grep -f " 1" /etc/...
Bei mir funktionierten die Perl-kompatiblen RegExes nicht. Obiges gilt für das GNU-Style-GREP. Für das Borland-GREP keine Ahnung. Falls du Delphi installiert hast, kann es sein, daß das Delphi-GREP sich vordrängelt. (Ich gehe mal wg. Delphi von Win32 mit Cygwin o.ä. aus) |
Re: Arbeiten mit 'grep'
Hi,
ich meinte das 'grep' unter linux. So geht es jedenfalls nicht, denn dann werden nur Einträge mit vorangestelltem Leerzeichen gefunden. Fast richtig aber nur 'fast'...;) |
Re: Arbeiten mit 'grep'
Hi Barnti,
probier das hier mal aus grep "[Leerzeichen,Tab]1" /etc/services damit hat es bei mir geklappt Leerzeichen und Tab nicht als Wörter in der grep Maske verwenden Mfg fluxury |
Re: Arbeiten mit 'grep'
Hallo,
daraufhin bekomme ich folgende Meldung: Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports The Well Known Ports are those from 0 through 1023. Kann jemand damit etwas anfangen? |
Re: Arbeiten mit 'grep'
Zitat:
|
Re: Arbeiten mit 'grep'
Gehen müßte folgende Variante:
Code:
grep "[[:space:]]1" /etc/services
|
Re: Arbeiten mit 'grep'
Hi
Nope: grep: Invalid character class name |
Re: Arbeiten mit 'grep'
Was für ein Unix hast du ??
|
Re: Arbeiten mit 'grep'
Hi,
auf der Kiste läuft 'IPCop'. So weit ich es weiß ist das auf RedHat aufgesetzt. |
Re: Arbeiten mit 'grep'
grep -P "\s*1" /etc/....
??? Geht das ??? |
Re: Arbeiten mit 'grep'
Zitat:
@barnti: dann nimm mal statt grep "egrep" bzw. "grep -E" um erweiterte Regexs einzuschalten. |
Re: Arbeiten mit 'grep'
Hi,
damit hatte ich auch noch keinen Erfolg...Selbe Fehlermeldungen, selbe Ergebnisse... |
Re: Arbeiten mit 'grep'
Andere Idee. Mit den meisten Perl-Distros kommt ein Beispiel welches GREP in Perl implementiert. Bzw du kannst das IMO auch im Web finden. Du kannst dann die normale Perl-RegEx benutzen. Und damit kenne ich mich besser aus :-D - könnte also auch besser helfen.
Das schlimme an den RegExes ist ja, daß es so viele verschiedene Geschmacksrichtungen gibt. Ich guck mal, so'n Perskript mit GREP-Fähigkeiten ist popelig kurz und kann dennoch die Zeilen ausgeben (wenn vielleicht auch nicht alle GREP-Modi nachvollziehen). |
Re: Arbeiten mit 'grep'
Na,
ich werde mal weiter versuchen. Es muss ja irgendwie gehen... |
Re: Arbeiten mit 'grep'
Willst du vielleicht das?:
Code:
... du willst doch "nur" den Dienst an Port 1. Also mußt du so eingrenzen:
grep "[[:space:]]1\/" /etc/services
[Space/Tab] [Eins] [Forward Slash] Wahlweise ginge auch:
Code:
um nur den TCP-Port zu bekommen.
grep "[[:space:]]1\/tcp" /etc/services
Funzt auf einem Mandrake-System ohne Probleme. Nachtrag: Das ist, wohlgemerkt, nur die modifizierte Variante von Thomas' (fiasko) Vorschlag. |
Re: Arbeiten mit 'grep'
Sein Problem ist ja das sein grep den Regex nicht frißt.
Also wenn er nur den Service Namen haben will gibt es ja extra die libc-Calls getservbyname und getservbyport. Wenn man nicht extra ein C-Proggy schreiben will tut es auch folgendes:
Code:
thomas@server:~$ perl -e 'print scalar getservbyname("ssh","tcp"),"\n";'
22 thomas@server:~$ perl -e 'print scalar getservbyport(22,'tcp'),"\n";' ssh |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz