Como faço para alterar alguns caracteres em um arquivo de texto grande

0

Eu tenho um arquivo grande file.dat , um despejo de banco de dados em um formato CSV que se parece com isso:

file_id,line_id,st_x,st_y,value1,value2,...value100
111111,1,22.22222,33.33333,0.1234567,0.246890,0.369258,...
.....

Tem vários milhões de linhas.

De repente, percebi que queria alterar os nomes das colunas: altere st_x para lon e st_y para lat .

Basta copiar o arquivo na minha máquina por um tempo, digamos T_copy segundos.

Editando o arquivo com

sed -i 's/st_y/lat/' file.dat

leva T_sed segundos, onde T_sed ~ 1.7 T_copy .

Existe um método mais rápido? Eu não me importaria se a string de substituição tivesse que ter o mesmo número de caracteres que a string de destino.

Observação: tenho certeza de que essa pergunta foi feita antes, mas não vejo como encontrá-la.

    
por Dmitri Chubarov 08.04.2016 / 08:49

1 resposta

2

Sugiro ver o arquivo com o visualizador do comando da meia-noite (F3 ou mcview) e, em seguida,

  • Pressione F4 (Hex),
  • Pressione F2 (Editar),
  • Pressione a tecla Tab para pular o cursor para a coluna de texto do visualizador,
  • Posicione o cursor nos caracteres que deseja sobrescrever e digite novos valores preenchendo os remanescentes dos valores antigos com espaços,
  • Pressione F6 (Salvar)
  • Pressione F10 (Sair)
por 08.04.2016 / 09:16

Tags