[Ubuntu-BR] apagar caracteres de um arquivo txt

Daniel Bastos dbastos+0 em toledo.com
Quarta Setembro 30 21:39:00 UTC 2009


In article <4AC24BC9.5050202 em ceb.unicamp.br>,
Allan Carvalho wrote:

> $ cat ip.txt | sed -e /Claudia/,/\^\$/d > ip.txt
>
> Explicando, ele vai apagar desde a linha que contém Cláudia até a
> próxima linha em branco...

E (com alguma sorte) destruir o arquivo.

Sob o comportamento do sh, com relação ao operador ``> arquivo'',
``[i]f the file does not exist, it shall be created; otherwise, it
shall be truncated to be an empty file after being opened.'' -- POSIX.

O mais seguro a fazer é 

 ... ip.txt > ip.tmp && mv ip.tmp ip.txt

Isso evita o problema, e faz a substituição atomicamente. (A opção -i
do sed não parece portável.)





More information about the ubuntu-br mailing list