Eu estava tentando sed
substituir algumas palavras-chave em um arquivo grande (100 MB). Como eu não conhecia a -i
opção (no local), minha primeira tentativa foi redirecionar assim:
sed 's/original/edited/g' file.log >> file.log
o que aconteceu depois disso foi que meu PC parou, quase sem entrada de teclado. Tentei um console diferente Ctrl+ Alt+, F1mas depois de inserir lentamente o nome do usuário, ele também parou. Sem teclado, minha única opção era redefinir o hardware da máquina. Após o login, vi que o file.log tinha cerca de 8 GB.
Eu realmente gostaria de entender por que a execução desse comando foi capaz de deixar o sistema sem resposta e se existem mecanismos no nível do sistema para acionar alertas e interromper o processo ofensivo?
free -h
?
ex -sc '%s/original/edited/ge|x' file.log
deve fazer o que quiser da maneira idiomática do UNIX, sem os sed -i
efeitos colaterais.