Compare dois arquivos linha a linha sem comm (eu preciso manter a ordem do arquivo 1)

1

Arquivo 1:

happy
sad
calm
palm

Arquivo 2:

palm
dream
calm

Eu quero comparar os dois arquivos e exibir apenas as linhas comuns em ambos os arquivos, mas quero manter a ordem do Arquivo 2. Minha saída deve ser:

palm
calm

Eu sei que posso usar o comm após classificar os arquivos, mas quero manter o pedido. Existe alguma maneira de fazer isso?

    
por user110327 09.11.2016 / 16:48

1 resposta

5

Use o grep:

$ grep -Ff f1 f2
palm
calm

homem grep:

   -F, --fixed-strings
          Interpret PATTERN as a list of fixed strings (instead of regular
          expressions), separated by newlines,  any  of  which  is  to  be
          matched.
   -f FILE, --file=FILE
          Obtain patterns from FILE, one per line.  If this option is used
          multiple times or is combined with  the  -e  (--regexp)  option,
          search  for  all  patterns  given.  The empty file contains zero
          patterns, and therefore matches nothing.
    
por 09.11.2016 / 17:04