Я пытался sed
заменить некоторые ключевые слова в большом файле (100 МБ). Я не знал о -i
опции (inplace), поэтому моей первой попыткой было перенаправление следующим образом:
sed 's/original/edited/g' file.log >> file.log
после этого мой компьютер остановился, почти не было ввода с клавиатуры. Я попробовал другую консоль Ctrl+ Alt+ , F1но после того, как медленно ввод имени пользователя, он остановился тоже. Без клавиатуры мой единственный вариант состоял в аппаратной перезагрузке машины. После входа в систему я увидел, что file.log был около 8 ГБ.
Я действительно хотел бы понять, почему выполнение этой команды могло сделать систему настолько безразличной, и если на системном уровне существуют механизмы для запуска предупреждений и прекращения процесса, вызывающего нарушение?
free -h
?
ex -sc '%s/original/edited/ge|x' file.log
следует делать то, что вы хотите в UNIX идиоматическим образом без sed -i
побочных эффектов.