Ich habe eine Textdatei:
deiauk 1611516 afsdf 765
minkra 18415151 asdsf 4152
linkra sfsfdsfs sdfss 4555
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
deiauk 1611516 afsdf ddfgfgd
luktol1 4545 4 9
luktol 1
und ich will genau passen deiauk
. Wenn ich das mache:
grep "deiauk" file.txt
Ich bekomme dieses Ergebnis:
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
aber ich brauche nur das:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Ich weiß, dass es eine -w
Option gibt, aber dann muss meine Zeichenfolge die ganze Linie machen.
grep -w
? (Diese Option ist genau für diesen Zweck vorgesehen und funktioniert bei mir.) - Hinweis: Die Option-x
entspricht der gesamten Zeile.deiauk
/ " Ich brauche nur Folgendes:deiauk 1611516 afsdf 765
" - was brauchst du?Antworten:
Versuchen Sie eines von:
quelle
*
Befehl vi / vim für Wörter verwendet habe.org.apache.avro avro
greped hatorg.apache.avro avro+mapred
(versucht mit *)Versuchen Sie dies mit GNU
grep
und markieren Sie Wortgrenzen mit\b
:Ausgabe:
Siehe: http://www.regular-expressions.info/wordboundaries.html
quelle
echo "Enter login: " $vard
grep -E "$\bvard\b" file.txt
grep "\b${vard}\b" file.txt
read
:read -p "Enter login: " vard; grep "\b${vard}\b" file.txt
Wenn Ihre
grep
Unterstützung-P
(PCRE), können Sie Folgendes tun:quelle
Abhängig von Ihren tatsächlichen Daten können Sie nach dem Wort suchen, auf das ein Leerzeichen folgt:
Wenn Sie wissen, dass es sich am Anfang der Zeile befinden muss, überprüfen Sie Folgendes:
quelle
^
- aber alle anderen Antworten funktionieren ... (Fortsetzung)