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[.|,|;]"
grep/sed: Nur ganze Wörter suchen
Bei sed und grep sollte \< und \> für Wortanfang/Wortende funktionieren:
Jochen
Code: Select all
grep '\<Katze\>' datei
sed -e 's/\<Katze\>/Hund/g' datei > ausgabe
Die grösste Lüge der EDV? "Mal eben..."
-
- Posts: 266
- Joined: 10. Sep 2004 14:37
- Contact:
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/
Danke. Klappt aber beides nicht:
"-katzen" und "katzen." hätte nicht gefunden werden dürfen, wurden aber. "raubkatzen" haben die Konstrukte dagegen korrekterweise nicht gefunden. Das verstehe, wer will
Code: Select all
bash-2.05b$ grep '\<katzen\>' test
Nachts sind alle katzen grau
Nachts sind alle -katzen grau
Nachts sind alle katzen. grau