我试图sed
替换大文件(100 MB)中的某些关键字。我没有意识到-i
(inplace)选项,所以我的第一次尝试是这样重定向:
sed 's/original/edited/g' file.log >> file.log
之后发生的事情是我的PC停了下来,几乎没有键盘输入。我尝试使用其他控制台Ctrl+ Alt+,F1但在缓慢输入用户名后,它也停止了运行。没有键盘,我唯一的选择是对机器进行硬件复位。登录后,我看到file.log约为8 GB。
我真的很想了解为什么执行该命令会使系统变得无响应,以及在系统级别是否存在触发警报并杀死令人讨厌的进程的机制?
free -h
?
ex -sc '%s/original/edited/ge|x' file.log
应该以UNIX惯用的方式完成您想要的操作而没有sed -i
副作用。