私はそれについて少し新しいもので、Macに移動して以来あまり使用していませんでしたが、数回の検索後にすべてのsed
Ubuntuと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
これはワイヤー-エディタは、解決された各行にスクリプトを適用します。したがって、n
ewline区切り文字を使用して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