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 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 une -w
option, mais ma chaîne doit ensuite tracer toute la ligne.
grep -w
? (Cette option est exactement dans ce but et cela fonctionne pour moi.) - Remarque: l'option-x
correspond à toute la ligne.deiauk
/ " Je n'ai besoin que de ceci:deiauk 1611516 afsdf 765
" - de quoi avez-vous besoin?Réponses:
Essayez l'un des:
la source
*
commande vi / vim sur les mots.org.apache.avro avro
avec lesquels il a par exemple comparéorg.apache.avro avro+mapred
(essayé avec *)Essayez ceci avec GNU
grep
et marquez les limites des mots avec\b
:Sortie:
Voir: http://www.regular-expressions.info/wordboundaries.html
la source
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
Si vos
grep
supports-P
(PCRE), vous pouvez faire:la source
En fonction de vos données réelles, vous pouvez rechercher le mot suivi d'un espace:
Si vous savez que cela doit être au début de la ligne, vérifiez-le:
la source
^
- mais toutes les autres réponses fonctionnent… (suite)