si j’ai:
abc a1b2c3 123
Comment puis-je grep des chaînes entières qui ne sont pas un caractère alphanumérique ou un nombre pour que je puisse obtenir
abc
Je pensais pouvoir utiliser le drapeau -F
en conjonction avec [^0-9]
grep -F '[^0-9]' filename
et renvoyer des chaînes complètes qui ne contiennent pas de nombres – mais cela ne renvoie rien.
Aucune suggestion?
Si vous voulez simplement faire correspondre les mots alpha, ceux sans partie numérique, dites:
grep -o "\b[[:alpha:]]*\b"
\b
correspond à la chaîne vide au bord d’un mot [[:alpha:]]
correspond aux caractères alpha. C’est-à-dire, A-Za-z plus vos locaux. Avec votre exemple:
$ echo "abc a1b2c3 123" | grep -o "\b[[:alpha:]]*\b" abc
Comme ça :
grep -wo '[^0-9]*' file
-w
– correspond à des mots entiers -o
– Affiche uniquement le motif correspondant Vous pouvez utiliser --word-regexp
( -w
) pour faire correspondre uniquement les mots qui ne contiennent aucun chiffre:
$ grep -wo '[^[:digit:]]\+' <<<'abc a1b2c3 123' abc
-o
imprimera uniquement la partie correspondante.