sed '/myname>.*\"\s*$/N;s|\"\s*\n*\s*myURL=\"|</myname><myurl>|' file.xml
この最初の行は不完全であるかどうかをテストします。そうであれば、次の行をパターンスペースに配置します。いずれの場合も、元のテキストを目的のテキストに置き換えます。
私は文字セットのパターンスペースで改行を一致させる方法を誰かに教えてもらえれば分かります。例えば、上記式の\s*\n*\s*
ではなく、[\s\n]*
となります。
入力:
<item id=""><myname>FIRST NAME" myURL="http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME"
myURL="http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME" myURL="http://etc.com</myurl></item>
出力:
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>
あなたのXMLに不正な形式れる - これは意図的なものですか? –
いいえ、申し訳ありません!一定。 –
最後の行に改行があるか、またはスペースが多いために折り返されていますか? –