sed、awk、または他のコマンドを使用して閉じるタグを埋める方法は?

sed、awk、または他のコマンドを使用して閉じるタグを埋める方法は?

txt次のファイルがあります。

<sss>ss<

または

<firstword>anotherword<

私はこれがこんな感じです。

<sss>ss</sss>

または

<firstword>anotherword</firstword>

デフォルトでは、最初の単語を取得して閉じるタグに入れます。

私が何を試したか、答えが何であるかを尋ねる前に何も考えることはできません。

ベストアンサー1

入力があります:

<abc>def<
<firstword>anotherword</firstword>
<ghi>klm<

使用:

sed 's/<\([^>]*\)>\(.*\)<$/<\1>\2<\/\1>/' input

出力:

<abc>def</abc>
<firstword>anotherword</firstword>
<ghi>klm</ghi>

sed行は<(because <$)で終わる行にのみ影響し、最初のペアと '> <'の間のパターンをキャプチャし、最初のペア<>(最後の '>'を含む)をコピーして最後にすべてを貼り付けます。

おすすめ記事