Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

1. Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

Michel Luis Grassi
mlgrassi

(usa Debian)

Enviado em 20/01/2021 - 09:25h

Imagine um arquivo de texto enorme. Uns 100 GB.
Percebi que quando mandamos o sed efetuar uma operação diretamente no arquivo (utilizando o parâmetro -i) ele cria um arquivo temporário e somente ao final da criação deste arquivo é que é aplicada a modificação. O problema é que quanto maior o arquivo (isso é óbvio) e quanto maior for a quantidade de modificações a serem realizadas maior será o tempo de execução.
O motivo deste tópico é perguntar se existe algum outro editor que seja mais rápido e/ou que funcione de maneira diferente do sed de maneira a não precisar criar um arquivo temporário toda a vez que for realizada uma modificação. Ou também ainda, se existe alguma maneira de alterar este comportamento default do sed.

Enfim... sugestões??


  


2. Re: Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/01/2021 - 11:24h

Tentou sed -u ?


3. Re: Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

Michel Luis Grassi
mlgrassi

(usa Debian)

Enviado em 20/01/2021 - 16:29h

Já e não adiantou absolutamente nada.


4. Re: Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 20/01/2021 - 19:16h

O que você quer fazer é muito complexo?
De repente pode ser feito numa linguagem como C, ao invés de usar comandos "secos" como o sed.

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://cpusam.github.io/
"com o bug fix vem a perfeição"


5. Re: Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/01/2021 - 19:26h

mlgrassi escreveu:

Já e não adiantou absolutamente nada.


Talvez se modificar a chamada do sed
https://www.perkin.org.uk/posts/how-to-fix-stdio-buffering.html


6. Re: Existe algum editor diferente do sed ou alguma maneira de evitar que ele utilize o buffer em disco?

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 20/01/2021 - 19:28h

Well, to vendo aqui que vai ser impossível!
Dê uma olhada aqui: [segunda resposta]
https://stackoverflow.com/questions/9033060/c-function-to-insert-text-at-particular-location-in-file...

Se usar o mesmo arquivo em C já é impossível, o mesmo se aplica ao sed (que deve ser feito em C). A não ser é claro, que haja um modo seguro de inserir bits num arquivo original sem copiar pra outro arquivo, isso eu duvido muito.

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://cpusam.github.io/
"com o bug fix vem a perfeição"