Imprimir linhas se o padrão não corresponder

0

Imprimir linhas de File 1 apenas se elas não contiverem padrões especificados em File 2

Exemplo:

$ cat File_1
L1  pattern1
L2  pattern     pattern2
L3  pattern3    pattern
L4  pattern4

$ cat File_2
pattern1
pattern2

Saída esperada

$cat File_3
L3  pattern3    pattern
L4  pattern4
    
por dovah 06.08.2014 / 14:57

1 resposta

4

Você pode usar grep :

$ grep -vFf file2 file1
L3  pattern3    pattern
L4  pattern4

-v , -F e -f são definidos por POSIX grep .

Observe que o acima também corresponderá aos subpadrões. Por exemplo, se você tiver pattern no arquivo2, isso corresponderá a pattern1 no arquivo1. Para evitar que você possa usar -w (para o GNU e BSD grep, talvez outros):

$ grep -wvFf file2 file1
    
por 06.08.2014 / 15:00