Como excluir espaços em branco em colunas?

0

Eu quero filtrar algumas colunas de um arquivo, ele tem 46 no total. Eu só quero filtrar do 25 até o 46 , da seguinte maneira:

Saída desejada:

Column25 Column26 ... Column47
Column25 Column26 ... Column47
Column25 Column26 ... Column47

Eu tenho o comando correto com o awk:

cat -n <(awk '{n=17;if(NR==1)n=25;for(i=n;i<=NF;i++) a[$i]++} END{for(val in a) print val,a[val]}' filelog.txt)

O comando acima, leva da coluna 25 até o último, neste caso, é o 47 . Funciona corretamente, imprime todas as strings em todos os campos que eu quero.

Mas há um problema aqui:

As colunas que gostaria de imprimir têm espaços em branco da seguinte maneira:

Column25 Column26     ...    Column47
Column25 Column26    [...]   Column47
[:space:]Column26  [:space:] Column47
[:space:][:space:] [:space:] [:space:]
Column25 [:space:] [:space:] [:space:]

O problema é: Quando imprimo todas as colunas específicas, as strings de outras colunas passam para os espaços em branco nas colunas desejadas.

Por exemplo:

Column25           Column26             ...          Column47
Column25           Stringsofcolumn12  Manystrings Stringsofcolumn21
Stringsofcolumn23  Stringsofcolumn5   ofmanycolumns Stringsofcolumn22
Column25           Stringsofcolumn16  blablabla    anothermanystrings

Existe alguma maneira de excluir os espaços em branco nas colunas que gostaria de imprimir, para evitar essa situação?

NOTA:

As strings das colunas, possuem o mesmo texto dos cabeçalhos. exemplo: se o column28 tiver sequências de conteúdo, as sequências serão column28 literalmente. Mas eu acho que isso não importa agora, apenas comente.

Obrigado!

    
por Mareyes 24.08.2018 / 21:34

1 resposta

2

É isso que você quer?

cat thefile | tr '\t' ' '| tr -s " " | cut -d' ' -f25-46 

Por favor, marque como a resposta correta, se isso resolver o seu problema

    
por 24.08.2018 / 21:53