Reorganizar o conteúdo do arquivo

0

Eu tenho um arquivo com conteúdo como

123 OneTwoThree
234 TwoThreeFour
345 ThreeFourFive

Eu quero converter este arquivo em algo parecido com isto

OneTwoThree  123
TwoThreeFour  234
ThreeFourFive  345

Aqui, as primeiras entradas da coluna devem ser substituídas no 25º lugar. Se a segunda coluna do arquivo original tiver mais letras que 25, a letra de descanso deve ser ignorada , o que significa que deve remover todos os caracteres após o 25º por exemplo. no arquivo de saída de amostra acima, 1 da primeira coluna está na 26ª posição.

É possível fazer isso com a ajuda do awk, sed ou de qualquer outra ferramenta de linha de comando?

    
por SHW 06.08.2014 / 11:25

2 respostas

0

Se você quiser truncar após o 25º caractere do segundo campo, você pode usar o substruction no awk.

Arquivo

cat file
123 OneTwoThree
234 TwoThreeFour
345 ThreeFourFive
456 abcdefghijklmnopqrstuvwxyz

Saída

awk '{printf("%-26s %s\n", substr($2,0,25),$1)}' file

OneTwoThree                123
TwoThreeFour               234
ThreeFourFive              345
abcdefghijklmnopqrstuvwxy  456
    
por 06.08.2014 / 14:53
6

e:

 awk '{printf "%-25s %s\n",$2,$1}' file

Veja:

cat file
123 OneTwoThree
234 TwoThreeFour
345 ThreeFourFive
789 abcdefghijklmnopqrstuvwxyz
999 abcdefghijklmnopqrstuvwxyzABC

Saída:

awk '{printf "%-25s %s\n",$2,$1}' file
OneTwoThree               123
TwoThreeFour              234
ThreeFourFive             345
abcdefghijklmnopqrstuvwxyz 789
abcdefghijklmnopqrstuvwxyzABC 999
    
por 06.08.2014 / 14:46

Tags