2016-07-21 9 views
0

Ich schreibe ein Shell-Skript, in dem ich nach Namen der Anwendung suche. Ich benutze Grep, um Anwendungsname herauszufiltern. Aber zusammen mit dem Anwendungsnamen bekomme ich auch andere Anwendungsnamen, die dieses Wort enthalten.Genau passendes Wort in Linux

Beispiel: grep Benachrichtigungen

Ausgang: Benachrichtigungen

 notifications-ui 

ich Ausgabe aller Anwendungen mit dem gesuchten Wort "notifications" Gibt es einen Befehl in Linux nur angegeben, um das Wort zu entsprechen.

Jede Hilfe zu diesem Thema wird sehr hilfreich sein.

Danke

+0

Hängt davon ab, was "nur das angegebene Wort" bedeutet. Möchtest du Charaktere vor und nach deinem Wort vermeiden? Dann können Sie einfach Leerzeichen vor und nach der Zeichenfolge hinzufügen, um zu passen. – mhoff

Antwort

0

der Mann Seiten für grep finden Sie das Licht.

Ich glaube, die -x-Flagge ist, was Sie suchen.

-x, --line-regexp Wählen Sie nur die Übereinstimmungen aus, die genau mit der gesamten Zeile übereinstimmen. (-x wird von POSIX angegeben.)

So läuft versuchen:

grep -x notifications 
+0

Danke für deine Antwort, aber mit -x bekomme ich keine Ausgabe. – RAcharya

0

Benutzung von GNU grep, können Sie versuchen, diese

grep -E '(^|)notifications(|$)' FILE 
+0

'$ grep" \ "<<< 'notifications-ui'' ' notifications-ui' –

+0

@Ignacio Vazquez-Abrams Ja, meine vorherige Antwort 'grep" \ "FILE' kann nicht verarbeiten solche Fälle. Danke, dass du es aufgezeigt hast. – hflzh

+0

Danke für die Antwort auf die Abfrage. Aber ich suche etwas wie cf services | grep <. Es sollte Dienste nur an den angegebenen App-Namen binden. – RAcharya

0

Versuchen Befehl finden:

 find /path/notifications 
+0

Danke für deine Antwort, aber ich lese nur Namen der Anwendung mit CLI und dann mit grep, um es zu filtern. – RAcharya