2010-02-24 11:53:58 +0000 2010-02-24 11:53:58 +0000
232
232
Advertisement

Como combinar espaços brancos em sed?

Advertisement

Como posso combinar espaços brancos em sed? Nos meus dados quero igualar todos os 3+ espaços em branco subsequentes (espaço de tabulação) e substituí-los por 2 espaços. Como é que isto pode ser feito?

Advertisement
Advertisement

Respostas (4)

240
240
240
2010-02-24 12:08:44 +0000

A classe de caracteres \s irá corresponder aos caracteres brancos <tab> e <space>.

Por exemplo:

$ sed -e "s/\s\{3,\}/ /g" inputFile

irá substituir cada sequência de pelo menos 3 espaços brancos por dois espaços.

  • *

REMARK: Para conformidade POSIX, utilize a classe de caracteres [[:space:]] em vez de \s, uma vez que esta última é uma extensão do GNU sed. Ver as especificações POSIX para sed e BREs

70
70
70
2013-08-28 20:28:34 +0000

Isto funciona em MacOS 10.8:

sed -E "s/[[:space:]]+/ /g"
14
Advertisement
14
14
2010-04-07 15:12:34 +0000
Advertisement

Algumas versões mais antigas do sed podem não reconhecer \s como um símbolo de correspondência de espaço branco. Nesse caso pode combinar uma sequência de um ou mais espaços e separadores com “[XZ][XZ]*” onde X é um espaço e Z é um separador.

11
11
11
2014-07-22 14:52:32 +0000
sed 's/[\t]*/"space or tab"/'
Advertisement
Advertisement