複数のファイルで文字列を置き換えるには、viの使い方

いつかあなたは、複数のファイルで文字列の出現を置き換えることをお勧めします。

viエディタの助けを借りてこれを行う簡単な方法があります。

この例では、viの力を説明します。

htmlファイルは、あなたが100を持っていると仮定し、"'2008と"文字列'2007の発生を交換したい。

このように、あなたのプロンプトで次のコマンドを実行します。

viの*. htmlを

これは現在の作業ディレクトリに"。htmlの'で終わるすべてのファイルを開きます。 その後、次のコマンドを発行します。

:argdo%s/2007/2008/g | WQ

それはこれだけです! 上記のコマンドは、2008年は、グローバル(g)のそれは各ファイルを保存する(W)とそれ(Q)を終了される単語と(%)ワード2007を置き換えて、各ファイルの上にループします。

検索する文字列と置換に使用する文字列が正規表現に置き換えることができることに注意してください。 例えば、キャレット(^)が行の先頭を参照している私たちは'サンプル'で始まると"テスト'で終わる任意の行を交換した場合、ドル記号($)は、1、そう等、その末尾を指す使用することができます:

:argdo%sの/ ^サンプル.*テスト$ / G |トイレ

.*つの文字列の間に何をどこにマッチします。

あなたが見つけると('単語'で検索してみて、すなわち'単語'にマッチします)大文字小文字を区別せずにアクションを交換を行う可能性があることにも注意してください。 そのことについては、単に'/ GI'で'/ g'を置き換える

4コメント

12:24 Mike 2008年8月23日

それはキャレットではなく、ニンジンです!

午前3時43分で管理者 2008年8月29日

それを入力するときに食べ物を考えておく必要があります :)
乾杯

イェンス 20:35で2010年7月16日

このヒントのおかげで、あなたはそれで私の仕事の束を救った。

13:49時を非常に 2010年9月27日より

Thanx多くは、それはあまりにも私を助けてくれました。

私がコメントを持って、交換数が比較的少ないときには、置換の入力を求めることも有用である可能性があります。

:argdo%sの/ SEARCH_STRING / replace_stringに/ GC | WQ

"確認"のための追加の'c'で

おかげで再び :)

コメントを残す

あなたのコメント