Son été demandé plusieurs fois, mais ce n'est pas encore clair pour moi.Comment gérer "-" dans grep?
J'ai le texte suivant dans un fichier (data.txt, onglet delimeted):
ABC 12
ABC-AS 14
DEF 18
DEF-AS 9
Maintenant, je veux rechercher ABC et DEF, mais pas ABC-AS, DEF-AS suite .
grep -w ABC data.txt
Sortie:
grep -w ABC data.txt
ABC
ABC-AS
grep --no-group-separator -w "ABC" data.txt
ABC
ABC-AS
grep --group-separator="\t" -w "ABC" data.txt
ABC
ABC-AS
Si votre version de 'grep' a Perl Regexes disponible , vous pouvez utiliser un lookahead négatif. Vous pouvez rechercher 'ABC', puis post-filtrer' grep -v 'ABC- [A-Z] '' ou à peu près. –
Avec la description révisée, pouvez-vous utiliser 'grep '^ ABC [[: space:]]'' pour trouver les lignes qui commencent par 'ABC' et non' ABC-AS'? Ou 'grep -E '^ (ABC | DEF) [[: space:]]'' si vous voulez aussi 'DEF'. –
Ou 'grep" ABC \ s "data.txt'. Pour plusieurs motifs: 'grep -e" ABC \ s "-e" DEF \ s "data.txt' –