Lidando com espaço em branco no grep

3

Estou tentando descobrir como lidar com o espaço em branco em grep . Como eu conto o grep para encontrar strings que contenham espaços em branco ou guias? O manual não me diz nada. \s parece funcionar para o espaço em branco, e \S parece funcionar para espaços sem espaços em branco, mas inclui todos os caracteres em branco (espaços E tabulações) e não funciona se colocar entre colchetes, tratando a barra invertida e o \s como caracteres separados.

    
por MYV 29.05.2013 / 03:38

2 respostas

5

Tem certeza disso?

$ printf "a \tb\na b\na\tb" | grep '.\s*.'
a       b
a b
a       b

$ grep -V
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.

Ou seja, conforme mostrado, \s combinou com espaços e guias - incluí o 'a' e o 'b' apenas para realçá-lo.

O que você ganha?

    
por 29.05.2013 / 05:25
2

Na minha experiência, o grep funciona melhor com as classes de caracteres POSIX - procure [[: space:]] por exemplo. Eu uso o grep extensivamente em alguns programas para validação de entrada do usuário e nunca tive um problema se eu ficasse em classes POSIX.

No entanto, como os comentaristas notaram, sua pergunta não está totalmente clara.

    
por 29.05.2013 / 07:19

Tags