Em sed
:
sed 's! \([^ ]\+\)\( \|$\)! !g' your_file
Isso fará as substituições e imprimirá o resultado como padrão. Para modificar o arquivo, adicione a opção -i
:
sed -i 's! \([^ ]\+\)\( \|$\)! !g' your_file
Explicação
Este comando sed
procurará um espaço, seguido por pelo menos um caractere não espacial, seguido por um espaço ou o final da linha. Ele substitui essa sequência por qualquer caractere não espacial que tenha encontrado seguido por um único espaço. A substituição é aplicada o maior número de vezes possível ao longo da linha (isso é chamado de substituição global) porque o modificador g
é fornecido no final.
Então, basicamente, com uma sequência como A B C
, sed
encontrará o padrão "B" e substituirá por "B", deixando você com AB C
como resultado final.
Suposições feitas por este código
Este código assume que os espaços entre suas colunas são realmente espaços e não TABs, por exemplo. Isso pode ser facilmente corrigido em detrimento da legibilidade:
sed 's![[:blank:]]\+\([^[:blank:]]\+\)\([[:blank:]]\+\|$\)! !g' your_file