2012-04-18 7 views
15

私は構成ファイルに特定の情報を書き込む刺激的なクローズドソースツールを持っています。別のファイルで構成を使用しようとすると、古いファイルがロードされます。 Grrr ...パターンと一致するすべての行を一連のファイルから削除するにはどうすればよいですか?

幸いなことに、構成ファイルはテキストなので、バージョン管理が可能です。ファイルから問題の行を削除するだけで害はありません。

しかし、このツールでは、行を入れ替えているので、設定ファイルの新しいバージョンをチェックするたびに、シンボルopenDirFileを含むすべての行を削除する必要があります。

私は、各ファイルに対してgrep -vを実行し、その結果を一時ファイルに保存し、元のファイルを削除して一時的に名前を変更するbashコマンドを作成しようとしていますが、素敵なクリーンな解決策、またはすでに組み立てられ、同様の呼び出しをデバッグしました。

これは、同じディレクトリ(favourite.rc-> signals.rc)内のシンボリックリンクを破壊することなく、どのように行うことができますか?

答えて

18
sed -i '/openDirFile/d' *.conf 

は、これはすべてのconfファイル

あなたのconfファイルは別のパスに配置されている場合は、また、「検索」コマンドを使用して行を組み合わせることができますが上の削除しません。

-iは「適切な場所で」削除することに注意してください。ケントの答えは明らかに優れている

for i in *.rc ; do TMP=$(mktemp) ; grep -v openDirFile ${i} >${TMP} ; mv ${TMP} ${i} ; done 

+0

素晴らしいですが、どうやってこれについて知りませんでしたか? –

0

これは私が思いついたことはbash-呪文でした。

関連する問題