J'ai un fichier texte:
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
et je veux faire correspondre exactement deiauk
. Quand je fais ça:
grep "deiauk" file.txt
J'obtiens ce résultat:
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
mais j'ai seulement besoin de ça:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Je sais qu'il y a un -w
option, mais ma chaîne doit ensuite machiner toute la ligne.
Essayez l'un des:
grep -w "deiauk" textfile
grep "\<deiauk\>" textfile
Essayez ceci avec GNU grep
et marquez les limites de Word avec \b
:
grep "\bdeiauk\b" file
Production:
deiauk 1611516 afsdf 765
Voir: http://www.regular-expressions.info/wordboundaries.html
Si votre grep
prend en charge -P
(PCRE), vous pouvez faire:
$ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Selon vos données réelles, vous pouvez rechercher le mot suivi d'un espace:
grep 'deiauk ' file.txt
Si vous savez que cela doit être au début de la ligne, vérifiez-le:
grep '^deiauk ' file.txt