Combine duas palavras que estejam na mesma linha

4

O comando que eu tenho imprime duas das linhas sempre que FW_6.0.0 é encontrado, abaixo está o código:

grep -oP 'FW_6.0.0, (.*)$' file

Abaixo está a saída, ambas com o mesmo valor de FW_6.0.0

FW_6.0.0, SUCCESS
FW_6.0.0, OK

Gostaria de combinar duas palavras, ou seja, FW_6.0.0 e SUCCESS que podem ser encontradas na mesma linha para que seja impresso:

FW_6.0.0, SUCCESS e elimina FW_6.0.0, OK

    
por user3081935 04.07.2014 / 05:25

4 respostas

6

tente usar aspas duplas "" :

grep -oP "FW_6.0.0, SUCCESS" file

OR (porque é uma string fixa, não um padrão):

grep -oF "FW_6.0.0, SUCCESS" file

da página man do grep:

-F, --fixed-strings
          Interpret  PATTERN  as  a  list  of  fixed strings, separated by
          newlines, any of which is to be matched.  (-F  is  specified  by
          POSIX.)
-P, --perl-regexp
          Interpret PATTERN as a Perl regular expression.  This is  highly
          experimental and grep -P may warn of unimplemented features.
    
por 04.07.2014 / 05:32
5

Se você quiser usar awk :

awk '/FW_6\.0\.0/ && /SUCCESS/' file
    
por 04.07.2014 / 05:29
4

Tente:

grep -o 'FW_6.0.0.*SUCCESS' file

Não precisamos da opção -P aqui.

    
por 04.07.2014 / 05:36
2

Através do sed

$ sed -n '/FW_6\.0\.0.*SUCCESS/p' file
FW_6.0.0, SUCCESS
    
por 04.07.2014 / 07:52