文字列 "fox"のすべての反復をmyFile.txtの文字列コンテンツ全体に置き換えるMacシェルスクリプトのsedコマンドは何でしょうか。
myFile.txtは、改行とすべての種類の文字を含むhtmlコンテンツになります。例は
</div>
</div>
<br>
<div id="container2">
<div class="question" onclick="javascript:show('answer2')";>
ありがとう!
編集1
これは私の実際のコードです:
sed -i.bkp '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' $file
実行すると、次のようになります。
sed in place editing only works for regular files.
そして私のファイルでは、Qはたくさんの漢字(!)に置き換えられています。奇妙な!
r
コマンドを使用できます。入力に「キツネ」が見つかった場合...
/fox/{
...無料で交換...
s/fox//g
...そして入力ファイルを読みます:
r f.html
}
次のようなファイルがある場合:
$ cat file.txt
the
quick
brown
fox
jumps
over
the lazy dog
fox dog
結果は次のとおりです。
$ sed '/fox/{
s/fox//g
r f.html
}' file.txt
the
quick
brown
</div>
</div>
<br>
<div id="container2">
<div class="question" onclick="javascript:show('answer2')";>
jumps
over
the lazy dog
dog
</div>
</div>
<br>
<div id="container2">
<div class="question" onclick="javascript:show('answer2')";>
[〜#〜] edit [〜#〜]:処理中のファイルを変更するには、-i
フラグをsedに渡すだけです:
sed -i '/fox/{
s/fox//g
r f.html
}' file.txt
一部のsedバージョン(私自身のものなど)では、-i
フラグに拡張子を渡す必要があります。これは、ファイルの古い内容を含むバックアップファイルの拡張子になります。
sed -i.bkp '/fox/{
s/fox//g
r f.html
}' file.txt
そして、これはワンライナーと同じもので、Makefileとも互換性があります
sed -i -e '/fox/{r f.html' -e 'd}'
最終的に私が行ったものは、オンラインで見つけた多くのソリューションよりもはるかに簡単です。
str=xxxx
sed -e "/$str/r FileB" -e "/$str/d" FileA
次のようなテンプレートをサポートします。
str=xxxx
sed -e "/$str/r $fileToInsert" -e "/$str/d" $fileToModify