Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
grep/sed: Nur ganze Wörter suchen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Pantherin
Gast





BeitragVerfasst am: 22. Okt 2004 12:01   Titel: grep/sed: Nur ganze Wörter suchen

Hallo,

ich würde gerne mehrere Textdateien durchsuchen nach bestimmten Wörtern. Jedoch bekomme ich es nicht hin, nur nach ganzen Wörtern zu suchen

Als Beispiel:

"Katze" soll gefunden (bzw. ersetzt) werden aber eben nicht "Katzenfutter" oder "Raubkatze".
Sowohl kontextsensitiv als auch kontestinsensitiv (verschieden durchläufe). Ist das möglich ?

Dritter Fall: Katze mit einem beliebeigen folgenden Zeichen, z.B. vor einem Komma oder als Satzende. Also eine Wildcard für ein Zeichen. "Katze?" bzw. "Katze[.|,|;]"
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 22. Okt 2004 14:17   Titel:

Bei sed und grep sollte \< und \> für Wortanfang/Wortende funktionieren:
Code:
grep '\<Katze\>' datei
sed -e 's/\<Katze\>/Hund/g' datei > ausgabe


Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

kanonenfutter



Anmeldungsdatum: 10.09.2004
Beiträge: 266

BeitragVerfasst am: 22. Okt 2004 14:31   Titel:

bei grep geht auch "-w".
_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Pantherin
Gast





BeitragVerfasst am: 22. Okt 2004 19:02   Titel:

Danke. Klappt aber beides nicht:

Code:

bash-2.05b$ grep '\<katzen\>' test
Nachts sind alle katzen grau
Nachts sind alle -katzen grau
Nachts sind alle katzen. grau


"-katzen" und "katzen." hätte nicht gefunden werden dürfen, wurden aber. "raubkatzen" haben die Konstrukte dagegen korrekterweise nicht gefunden. Das verstehe, wer will
 

Scory



Anmeldungsdatum: 16.04.2004
Beiträge: 188

BeitragVerfasst am: 23. Okt 2004 12:11   Titel:

Doch, ist vollständig richtig: ein Punkt und ein Minus sind "Wortgrenzen".
 
Benutzer-Profile anzeigen Private Nachricht senden

Pantherin
Gast





BeitragVerfasst am: 23. Okt 2004 18:09   Titel:

Das ist ja ärgerlich. Wie teile ich grep bzw. sed mit, nur das Leerzeichen als Wortgrenze zu nehmen ? Und wo bekomme ich einen Überblick über existierende Wortgrenzen her ?
 

Scory



Anmeldungsdatum: 16.04.2004
Beiträge: 188

BeitragVerfasst am: 24. Okt 2004 12:12   Titel:

> Wie teile ich grep bzw. sed mit, nur das Leerzeichen als Wortgrenze zu nehmen ?

Indem Du Leerzeichen im Suchmuster angibst:

grep -i ' katzen ' test
 
Benutzer-Profile anzeigen Private Nachricht senden

Pantherin
Gast





BeitragVerfasst am: 29. Okt 2004 16:04   Titel:

Oh, Gott, das war so naheliegend ....

Danke, wenn auch leicht beschämt
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy