2017-12-10 2 views
0

In meinem Projekt versuche ich Dateien zu finden, die "/ baz" enthalten. Also, ich folgendes tun:Warum stimmt grep nicht mit einem Schrägstrich an Wortgrenzen überein (z. B. `/ baz` in` import baz von './foo/bar/baz')?

grep -rnw . -e "\/baz" 

Der Ausgang richtig passt die folgende Beispiel:

import { baz } from './baz'; 

Aber es scheint nicht auf dieser Linie entsprechen:

import { baz } from './foo/bar/baz'; 

Es tut Match wenn ich jedoch auf "bar\/baz" grep. Was ist los?

Antwort

1

Trennen Sie das -w Argument von Ihrem grep Anruf. Von grep Hilfe:

-w, --word-regexp-Kraft-Muster nur ganze Wörter

Es wird daher anzupassen, Ihr Muster passen nur, wenn es sich um ein ganzes Wort ist (von Wortgrenzen umgeben wie zum Beispiel ein Punkt, Leerzeichen, Beginn/Ende der Zeile ...)

+0

Großartig! Danke Kumpel. Ich werde deine als die Antwort markieren, da sie die Manpage enthält. –

1

Sie benötigen

grep -rn . -e "\/baz" 

ohne word Flagge. Andernfalls sucht der Ausdruck nach Wortgrenzen, die im zweiten Beispiel nicht gefunden werden können.

+0

Großartig! Danke Kumpel. –

Verwandte Themen