単語を見つけ、新しい行に新しい単語に置き換えたいです。

単語を見つけ、新しい行に新しい単語に置き換えたいです。

良い:

sed 's/</risk_measure_slice>/</risk_measure_slice>\n/g' allinoneline1.mqf

うまくいかない

ベストアンサー1

正規表現と代替テキストにはが含まれています。これは、そのコマンドで区切り文字として使用される文字/でもあります。seds

/これは、例えば脱出する必要があることを意味します。

sed 's/<\/risk_measure_slice>/<\/risk_measure_slice>\n/g' allinoneline1.mqf

または、次のような別の区切り文字を使用します。

sed 's#</risk_measure_slice>#</risk_measure_slice>\n#g' allinoneline1.mqf

またはより短い、

sed 's#</risk_measure_slice>#&\n#g' allinoneline1.mqf

代替テキストにはが含まれています\n。これはGNUでのみ改行文字として解釈されますsed。 BSDを使用している場合、sedこの文字はとして出力されますn。 GNU sed、BSD、またはすべてのPOSIX準拠標準sedでサポートされている標準構文sedは次のとおりです。

sed 's#</risk_measure_slice>#&\
#g' allinoneline1.mqf

GNUを使用しsedてXML閉じるタグを新しい行に追加するには、タグの\n後ろではなくタグの前に配置する必要があります。

XMLファイルのフォーマット/修正/クエリのためのツールを見ることもできます。XMLスターまたは同様です。

おすすめ記事