こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

sedでXMLタグ行末を改行に置換

WindowsPCからtelnet(teraterm)でLinuxサーバログインしていますが、
XMLファイルの中身のタグの行末を下記のようにWindowsで表示できる改行にして表示したいです。

サーバ上のXMLファイルの中身:
<要素1>あいう</要素1><要素2>かきく</要素2><要素3>さしす</要素3>

telnetターミナル上で表示したい形:
<要素1>あいう</要素1>
<要素2>かきく</要素2>
<要素3>さしす</要素3>

コマンドとしてはsedがあることがわかりましたが、>や<、Windowsの改行をどのように記述したらよいかわかりません。

$ cat hoge.xml | sed

のあとにどのようにコマンドを書けばいいでしょうか。

投稿日時 - 2019-04-17 19:41:54

QNo.9607777

困ってます

質問者が選んだベストアンサー

sed 's:\(</[^>]*>\):\1\n:g'

ですね。改行は \n です。

投稿日時 - 2019-04-17 23:40:55

お礼

ありがとうございます。
結局
$ xmllint --format foo.xml
で表示整形する方法がわかりました。

投稿日時 - 2019-04-21 09:28:07

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> Windowsで表示できる改行にして表示したいです。

これ CRLF で欲しいと言ってる?

とくにそんな意図はないなら
$ cat hoge.xml | sed 's#</要素[^>]*>#&\n#g'
とかだけど、パターンの部分は要調整、実際の xml に合わせて。

投稿日時 - 2019-04-17 21:02:04

お礼

ありがとうございます。
結局
$ xmllint --format foo.xml
で表示整形する方法がわかりました。

投稿日時 - 2019-04-21 09:27:43

あなたにオススメの質問