Como encontrar um espaço em um texto. usando grep?

11

Como grep um espaço no texto?

cat a.txt| grep ' '

ou

cat a.txt| grep '\s '
    
por Emax 05.07.2013 / 12:08

3 respostas

4

Acho que encontrei:

cat a.xml | grep  "\+[[:space:]]\+"
    
por 08.07.2013 / 08:27
6

Se você quiser usar apenas um espaço para colocar na sua pergunta, use algo como:

grep -e '^\s[^\s]' -e '[^\s]\s$' -e '[^\s]\s[^\s]' a.txt

ou para variantes POSIX:

grep -e '^ [^ ]' -e '[^ ] $' -e '[^ ] [^ ]' a.txt

ou a variante POSIX menos legível:

grep '\(^\|[^ ]\)\ \([^ ]\|$)' a.txt

Supondo que você queira excluir linhas que contenham mais de um espaço adjacente, isso explicitamente requer que haja um espaço, não precedido por um espaço e não seguido por um espaço.

Além disso, é importante notar que nem todas as versões do grep suportam controles de expressão regular \ \ '.

    
por 05.07.2013 / 14:31
1

A variante 2 só encontrará dois espaços. Se você usar '\s' , as duas variantes funcionarão.

Você pode testar isso por conta própria, então qual é a sua pergunta real?

    
por 05.07.2013 / 12:11

Tags