removendo espaços da primeira coluna

1

Meu arquivo de entrada tem posições na primeira coluna com diferentes números de espaços (ou nenhum espaço)

16504   16516       
    1650811   16520      
 1651   16524      
  16516111   16528       
 165204   16532       

Eu preciso obter um arquivo de saída em que a coluna de punho não tenha espaços, mantendo a segunda coluna como está.

16504   16516       
16508   16520     
16512   16524      
16516   16528       
16520   16532   
    
por user61398 26.02.2014 / 13:41

3 respostas

9

Se este é apenas um problema de alinhamento, e você deseja alinhar os dados em colunas:

$ column -t somefile
16504     16516
1650811   16520
1651      16524
16516111  16528
165204    16532

A opção -t para column criará uma tabela a partir dos dados de origem, automaticamente:

   -t, --table
          Determine the number of columns the input contains and create a 
          table.  Columns are delimited with whitespace,  by  default,
          or with the characters supplied using the separator. Table output 
          is useful for pretty-printing.
    
por 26.02.2014 / 14:16
5

Você provavelmente está seguindo algo como:

sed "s/^ *//" < your_file

que remove todos os espaços iniciais (substitui-os por uma string vazia). Se você também tiver um número variável de espaços entre as colunas, poderá estendê-lo para:

sed "s/^ *//;s/  */    /g" < your_file

que (depois de remover os espaços iniciais) substitui qualquer ocorrência de um ou mais espaços com uma cadeia fixa (neste caso, 4 espaços). Você também pode usar \s em vez de espaço simples no padrão correspondente para cobrir os casos em que um caractere Tab é usado.

    
por 26.02.2014 / 14:06
3

Você pode tentar isso:

awk '$1=$1' file

para remover todo o espaço inicial na primeira coluna.

    
por 26.02.2014 / 14:10