Eu tenho um arquivo de texto contendo dados tabulados alinhados com muito espaço separando colunas, por exemplo:
header1 header2 header3
val1a val2a val3a
val1bbbb val2b b ab ab val3b
Observe que os valores da coluna contêm espaços. (O exemplo preciso é obtido executando COLUMNS=200 dpkg-query -l
no Debian, até remover as primeiras linhas de cabeçalho.)
Eu gostaria de reduzir o comprimento das linhas, a saber, a mesclar colunas adjacentes que consistem apenas no caractere de espaço em uma única coluna desse tipo . O resultado aqui seria:
header1 header2 header3
val1a val2a val3a
val1bbbb val2b b ab ab val3b
(Observe que isso pode reduzir vários espaços dentro de um campo para um único espaço, como em "ab ab" = > "ab ab" acima, mas isso não importa.) Como eu poderia fazer isso? Obrigado!
(A única solução que assumi é que as colunas são separadas por vários espaços, então posso substituí-las por um delimitador que não ocorra em outro lugar no arquivo e, em seguida, reclassificar com column -t
com base nesse delimitador Mas isso é frágil e desagradável e não funciona se houver algumas colunas separadas por apenas um espaço ou se alguns valores de coluna contiverem vários espaços.