Combine tudo após barra invertida e antes do espaço

0

Eu tenho strings semelhantes às seguintes:

*unknown*\*unknown* (8)
hello\morning (3)

Estou tentando corresponder apenas a morning ou *unknown\* .

Até agora eu tentei:

[^\]+$

Mas isso corresponde de barra invertida a fim de linha que não é o que eu quero.

    
por Proletariat 29.09.2015 / 11:04

1 resposta

2

com grep :

grep -oP '(?<=\)[^\ ]+' file

-o imprime apenas o padrão correspondente. O (?<=...) é um lookahead positivo que corresponde à barra invertida \ , mas não faz parte do padrão de correspondência. O segundo padrão [^\ ]+ segue a barra invertida e contém todos os caracteres, mas não barras invertidas e não espaços.

A saída:

*unknown*
morning
    
por 29.09.2015 / 11:13