2017-05-18 3 views
0

Ich bin auf der Suche zu finden, einen Weg zu finden, eine genaue ZeichenfolgeUnix genaue Übereinstimmung der Zeichenfolge

zum Beispiel zum Spiel: Ich habe diese cmd, die ich auf Unix-Server laufe

1.) finden./-name "* .jsp" -type f -exec grep -m1 -l '50 .000 '{} + >> 50dotcol.txt

2.) suche ./ -name ".jsp" -type f - exec grep -m1 -l '\ < 50.000>' {} + >> 50dotcol.txt

Bearbeitet nach Georges Antwort: find ./ -name "* .jsp" -Typ f -exec grep -m1 -l '(50.000) {} + >> 50dotcol.txt

noch nicht ziehen in ergebnislos

Der erste findet eine Zeichenfolge mit "50", die zweite enthält keine zweistelligen Strings, sondern $ 50.000 $ 50.000. Aber ich suche nur "50.000" und das ist es, keine anderen Variationen dieser

Fehle ich etwas in meinem find cmd?

Antwort

0

Verwenden

grep -m1 -l '(50\.000)' 

statt. Dieser Backslash vor dem < interpretiert es wörtlich, was Sie nicht wollen. Und Sie müssen Klammern verwenden, um sie als eine exakte Gruppe von Zeichen zu betrachten.

+0

Vielen Dank für Ihre Antwort, ich habe meinen Befehl aktualisiert, um Ihren Vorschlag zu enthalten, aber beim Ausführen habe ich keine Ergebnisse erhalten. Ich habe meinen CMD oben aktualisiert, fehlt mir etwas? – POPEYE1716

+0

Ich weiß nicht, was Sie mit dieser exec tun, verwende ich im Allgemeinen xargs, um die stdout von einem Befehl in Befehlszeilenargumente eines anderen zu konvertieren. Was in diesem Fall gibt finden. -name "* .jsp" | xargs grep '50 \ .000 '>> 50dotcol.txt –

Verwandte Themen