• ベストアンサー

ファイルから特定列を削除する方法

Linux系OSにてファイルから特定の文字列を削除する方法を教えてください。 やりたい事としては、ログファイルから"error"のキーワードを含む列を永久的に削除すると言ったものです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mahny
  • ベストアンサー率74% (57/77)
回答No.1

こんばんわ "grep -v" でキーワードを含まない行を出力できるので こんなカンジでどうでしょう? $ more org.txt | grep -v error > conv.txt $ rm org.txt $ mv conv.txt org.txt

その他の回答 (2)

  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.3

#2の回答のように、errorを表示させないような設定は決してしないでください。 システムエラーや、不正アクセスの警告などが出力されないので、非常に危険です。

noname#39145
noname#39145
回答No.2

mahnyさんの教えてくれたコマンドでいけそうですね。 ただ、永久的に削除するならば、ログファイルはどんどん新しく書かれていくので、シェルスクリプトを書いてcronで定期的に実行させるなどの必要がありそうですね。 そもそも、永久的に"error"のログがいらないのならば、削除する以前に"error"のログを出力させなければいいだけです。 "/etc/syslog.conf"の"priority"を変更すればいいだけです。 "error"だけいらないのであれば"!err"にしちゃうとか。 詳しいやり方は自分で調べてください。 ちなみに、これは"syslog"を使ったログの場合なので、他のは知らんです。

関連するQ&A