シェルを使用して条件付きで余分な文字を削除するには?

シェルを使用して条件付きで余分な文字を削除するには?

単純なUnixコマンドでこれを達成できるかどうかはわかりません。ちょっと複雑に見えるからです。

以下の文字が来ました。

<p id="mt">Iusto, numquam dolore aut voluptates delectus</p>
<p id="mt">Lorem ipsum dolor sit amet</p>
<p id="mt">Facere vitae sapiente necessitatibus</p>
<p id="mt">Tempora modi rem reprehenderit quam eos. Provident, animi ab ducimus dolorem</p>

各行の文字長が異なります。一部のコンテンツが長すぎて省略する必要があります。

たとえば、<p id="mt">...</p>コンテンツを20文字に制限し、それを超えると削除します。こんな感じです。

<p id="mt">Iusto, numquam dolor</p>
<p id="mt">Lorem ipsum dolor si</p>
<p id="mt">Facere vitae sapient</p>
<p id="mt">Tempora modi rem rep</p>

ベストアンサー1

使用sed:

sed -E 's/^(<p id="mt">.{20}).*(<\/p>$)/\1\2/' infile

おすすめ記事