OSXの複数行の置き換えは、複数行にわたってコピーされます。

OSXの複数行の置き換えは、複数行にわたってコピーされます。

私はそれについて少し新しいもので、Macに移動して以来あまり使用していませんでしたが、数回の検索後にすべてのsedUbuntuとMacで状況が異なるように見えました。sed私が望むのは、XMLファイルの最初の部分をいくつかの新しい値に置き換えることです。知識を更新した後、次をsed使用することにしました。

sed -e '1,/<\/value>/ s/.*/\<something\>lorem ipsum\<\/something\>\n\<again\>wednesday\<\/again\>\n/' $theFile

コードを実行すると、<something>lorem ipsum</something>n<again>wednesday</again>n最初の行から</value>最後まですべての行に出力されます。

だから私の質問は、すべての行でファイルの内容を繰り返すことなく、必要な新しい行のファイルの内容を置き換える適切な方法は何ですか?

ベストアンサー1

sedこれはワイヤー-エディタは、解決された各行にスクリプトを適用します。したがって、newline区切り文字を使用して1つの文字列に置き換えたい行を収集する必要があります。

sed -e '1{:1;N;/<\/value>/b1;s/.*/\<something\>lorem.....\n/}' $theFile

別の方法は、iブロックの前に必要なテキストを挿入してからブロックを削除することです。

sed -e '1i\\<something\>lorem.....\n' -e '1,/<\/value>/d' $theFile

おすすめ記事