Como combinar espaços brancos em sed?
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?
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?
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
Isto funciona em MacOS 10.8:
sed -E "s/[[:space:]]+/ /g"
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.