sedを使用して文字列範囲内の改行文字を置き換える

sedを使用して文字列範囲内の改行文字を置き換える

以下の文字が来ました。

<div><p class="title">software
v1.0.1.0
download</p></div>
<div><p class="title">software
v1.0.2.0
download</p></div>
<div><p class="title">software
v1.0.3.0
download</p></div>

rangeで改行文字を置き換える必要があります<p class="title">...</p>。以下のようにしてください。

<div><p class="title">software v1.0.1.0 download</p></div>
<div><p class="title">software v1.0.2.0 download</p></div>
<div><p class="title">software v1.0.3.0 download</p></div>

sedを使用してこれを実行できますか?助けてくれてありがとう!

ベストアンサー1

ファイルにこれら3つの「重複」行のみが含まれている場合は、次のものを使用できます。

$ sed 'N;N;s/\n/ /g' file

これで以下が生成されます。

<div><p class="title">software v1.0.1.0 download</p></div>
<div><p class="title">software v1.0.2.0 download</p></div>
<div><p class="title">software v1.0.3.0 download</p></div>

sedファイルに追加の行が含まれている場合は、次のスクリプトを使用してください。

$ sed '/class="title"/ { N;N;s/\n/ /g }' file

おすすめ記事