Como adicionar zero (0) em espaços em branco em um arquivo grande (o arquivo de exemplo está abaixo)

1

Aqui está um arquivo de exemplo em que preciso substituir espaços em branco por zero

A   2   2   2   2   2
B   2   2   2   2   2
C   2   2   2   2   2
D   A               
E   B               
F
D
R                   
    
por user55103 21.12.2013 / 14:13

3 respostas

3

Os seguintes itens devem funcionar:

tr '\t' 0 < file 1<> file
    
por 21.12.2013 / 14:15
1

Filtrar por

perl -pe 's/\t(?=\t|$)/\t0/g'

Em expressões regulares Perl,

  • \t é uma tab
  • (?=…) é uma asserção de antecipação de largura zero, que usei para corresponder apenas a campos vazios.

As opções de linha de comando Perl

  • -e especifica que o próximo argumento da linha de comando contém o programa Perl
  • -p insere código clichê para fazê-lo agir como awk : executando o código Perl para cada linha na entrada e imprimindo a linha processada.
por 22.12.2013 / 09:20
0

Filtrar por

awk '{ while (gsub("\t\t", "\t0\t"));
       sub("\t$", "\t0");
       print }'

A solução é inábil porque, em geral, nem awk nem sed suportam asserções de antecipação de largura zero. Portanto, tenho que procurar duas guias consecutivas. Como resultado, também tenho que manipular a guia no final da linha separadamente.

    
por 22.12.2013 / 09:16