2017-02-03 6 views
-1

ich eine Eingabedateiwie grep die folgende

RAKESH_ONE  
RAKESH-TWO 
RAKESH123 
RAKESHTHREE 
/RAKESH/ 
FIVERAKESH 
456RAKESH 
WELCOME123 
This is RAKESH 

möchte ich erhalten die Ausgabe

RAKESH_ONE 
RAKESH-TWO 
/RAKESH/ 
This is RAKESH 

ich die Zeile drucken möchten, müssen passend zum Muster RAKESH. Wenn dem Muster ein alphanumerisches Präfix vorangestellt wird, sollten wir es vermeiden.

+0

Welche Optionen haben Sie versucht und fehlgeschlagen? – Inian

+0

Ich versuche wie grep -v '[0-9a-zA-Z] RAKESH', die für Präfixe arbeitet, aber es ist auch das Drucken der nicht übereinstimmenden Muster Linien auch wie WELCOME123 –

+0

grep-w "RAKESH" , dies ist ausschließlich '_' auch, aber ich möchte auch die Zeichenfolgen mit _ wie RAKESH_ONE –

Antwort

3
([^a-zA-Z0-9]+|^)RAKESH([^a-zA-Z0-9]+|$) 

Dies entspricht Mustern in den Zeilen ohne alphanumerische Präfixe oder Suffixe. Es wird nicht die ganze Linie übereinstimmen, aber wenn Sie mit grep oder sed verwendet werden, können Sie nur die Linien ausgeben, die Sie brauchen.

UPDATE

Wie gewünscht, hier ist die volle grep Befehl. Verwenden Sie die -E Option, erweiterten Regex zu verwenden:

grep -E "([^a-zA-Z0-9]+|^)RAKESH([^a-zA-Z0-9]+|$)" file.txt 
+0

Ich sehe ungültige Variable Name Fehler, wenn ich mit Grep –

+0

kann Sie den Befehl mit grep geben? –