2016-12-03 6 views
0

私はいくつかの単語を同時に崇高なものに置き換えたいと思っています。たとえば、word1、word2、word3をword4、word5、word6に置き換えるのは、3つのステップではなく、同時に置き換えます。私はそれを崇高に行うことはできますか?これを行うにはどうすれば正規表現を思いつくことができますか? ありがとう複数の単語を崇高なテキスト3で同時に検索して置き換えることはできますか?

+2

却下してください:崇高なテキスト置換パターンでは、[Perlフォーマット文字列構文](http://www.boost.org/doc/libs/1_62_0/libs/regex/)のみが許可されています。 doc/html/boost_regex/format/perl_format.html)。メモ帳++の置換パターンは、[拡張形式文字列構文](http://www.boost.org/doc/libs/1_62_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html)をサポートしています。簡単な正規表現のS&Rで必要があります。 [Notepad ++でregexで置き換えるときの条件の使い方](http://stackoverflow.com/questions/37160927/37161309#37161309)を参照してください。 –

答えて

2

この場合sedコマンドが役に立ちます。

sed -i -e 's/word1/replace1/g' fileName && sed -i -e 's/word2/replace2/g' fileName && ... 

これは何語置き換える必要がありますか?

これは、ファイルの内容は次のとおりです。ちょうどあなたの端末に

例をこれを実行します。ファイルの名前は、私がFILEととファイルことこのを交換したい

t.txtです。そのコマンドになります:

sed -i -e 's/this/that/g' t.txt && sed -i -e 's/file/FILE/g' t.txt 

出力は次のようになります。

FILEの内容であること。ファイル名はt.txt

0

置き換えられる単語がいくつかの文字の間にあるかどうかにかかわらず、一致する場合は、word1(.*)word2(.*)word3パターンを使用して、word4\1word5\2word6\3を置き換えます。

パターンは、置き換えられる単語の間に文字があれば、3つの取得グルー​​プを使用して文字を一致させました。 \1,\2および\3は、捕捉された各グループを表す。

ここで、置換されたパターンは、word4のシーケンスで置き換えられなければならず、最初のキャプチャグループでキャプチャされた文字、すなわち単語1と単語2の間の文字、にあります。

+0

ありがとうございますが、私はいくつかの単語1といくつかの単語2といくつかの単語3を置き換えたいと思います。 – user6638204

関連する問題