Я намагався 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
побічних ефектів.