2017-09-25 2 views
1

J'ai un fichier txt à partir duquel je veux obtenir seulement les expressions du type 'USA_word *' où * est quelque chose (je ne veux pas toute la ligne, seulement les expressions)grep seulement certaines expressions entre guillemets

J'essaie la commande

grep -oP ''USA_word*'' 

Mais je reçois une liste:

USA_word 
USA_word 
USA_word 
..... 

sans la partie signifié par le *.

+1

Peut-être 'grep -o 'USA_word [^ [: blank:]] *''? Cela devrait fonctionner si, par "expressions", vous voulez dire n'importe quel caractère non-blanc. –

+0

Fonctionne comme un charme, merci! – Veliko

Répondre

1

Vous pouvez utiliser

grep -o 'USA_word[^[:blank:]]*' 

Les [^[:blank:]]* matchs de partie 0+ caractères non-blancs. En outre, il n'utilise pas l'option PCRE -P et utilise une regex BRE POSIX pure, ce qui le rend compatible avec la plupart des implémentations grep.