Remover espaços à direita do primeiro campo apenas

0

Eu tenho um arquivo delimitado por tabulações e várias linhas como este:

99999 bbbbb t999999 bb t99t99t99t99

(onde b = espaços, t = guias)

Trailing espaços no campo 2 estão ok, mas os espaços à direita no primeiro campo precisam ser removidos. Existe uma maneira fácil de remover os espaços à direita do primeiro campo de cada linha? sed / awk / tr?

    
por LKA 23.10.2015 / 21:43

1 resposta

2
sed $'s/ *\t/\t/' < file

removeria os espaços antes da primeira guia. Aqui assumindo um shell como ksh93, bash, zsh, mksh ou FreeBSD sh com suporte para $'...' (que está programado para inclusão no número 8 da Especificação Single UNIX).

Algumas implementações sed como o GNU sed também reconhecem aquelas \t diretamente:

sed 's/ *\t/\t/' file

Caso contrário, POSIXly, você pode fazer:

TAB=$(printf '\t')
sed "s/ *$TAB/$TAB/" file

Você também pode fazer o mesmo com awk POSIXly:

awk '{sub(/ *\t/, "\t"); print}'
    
por 23.10.2015 / 22:04

Tags