探している リテラル 検索文字列に特殊文字が含まれている場合、正規表現を使用した文字列は、パターンを検索するほど単純ではない場合がありますが、少し手を加えることでそれを実行できます。
注: echo
コマンドはCMD特殊文字に対応しなければならないので、それは必要です ^^
シングルを脱出する ^
そして ^|
脱出する |
... CMDのエスケープ文字は必要ありません ^
ファイルに直接入力した場合
ステップ1: という名前のファイルを作成します。 literal-srch-strings.txt 置き換えられる正確な(変更されていない)文字列を含みます。このファイルを作成する方法は2つあります。
CMDで発行されたコマンドとして コマンドライン または、.cmd / .bat内のコマンドとして コマンドスクリプト 。
echo sed -i^^/\\*$/$[{" ;"> literal-srch-strings.txt
作る literal-srch-strings.txt あなた自身、あなたのテキストエディタで。
この場合、あなたは いけない CMDエスケープ文字を使用 ^
だから、行は1つだけです ^
ではない ^^
- これはCMDシェルを迂回しているためです。
これは.txtファイルに必要なものです(ファイル名が言うとおり):)
sed -i^/\\*$/$[{" ;"
ステップ2: 作る sedスクリプト 、という名前 str-to-regex.sed 、文字列をsedの正規表現に変換します。
CMD-escape-characterの同じ問題に注意してください。 ^
この手順に適用されるので、.sedファイルを作成する方法は2つあります。
コマンドとして:
echo s/[]\/$*.^^^|[]/\\^&/g; s/.*/s\/^&\/Ciao!\/g/> str-to-regex.sed
テキストエディタを使って、という名前のファイルを作ります。 str-to-regex.sed 、を含む:
s/[]\/$*.^|[]/\\&/g; s/.*/s\/&\/Ciao!\/g/
ステップ3: 実行します sedスクリプト 文字列をsedの正規表現に変換します。
その出力を別のsedスクリプトに送る replace-text.sed 、それは実際の置き換えになります。
sed -f str-to-regex.sed literal-srch-strings.txt > replace-text.sed
ステップ4: 実行する replace-text.sed - 私達が使用できるテストのために literal-srch-strings.txt 入力ファイルとして使用できますが、もちろん任意の入力ファイルを使用できます。
sed -f replace-text.sed literal-srch-strings.txt
これが出力です。
Ciao!
*/123
に"ciao!"