sed
大きなファイル(100 MB)のいくつかのキーワードを置き換えようとしていました。-i
(インプレース)オプションを知らなかったので、私の最初の試みは次のようにリダイレクトすることでした:
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
。