行の指定された部分が 100 文字を超える行を削除するにはどうすればよいでしょうか?

行の指定された部分が 100 文字を超える行を削除するにはどうすればよいでしょうか?

次のようにすれば、100 文字を超える行を削除できることはわかっています。

sed '/^.\{100\}..*/d'

しかし、次のような例があります:

<a href="http://xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</a><br>

したがって、「YYY」の行のみを削除する必要があります。

">Y...Y...Y</a><br>

100 文字を超えています。どうすればいいですか?

私はOpenBSDを使用しています。

答え1

grep -vE '">[^<>]{101,}</a><br>'

">aと a の間に 100 個を超える <> 以外の文字が含まれる行を削除します</a><br>

答え2

上記と同じです(つまり、あなたが何をしたいのか私が正しく理解していれば):

sed -e '/Y\{100\}/d'

これは、100 個の Y が連続して含まれるすべての行に一致し、それらを削除します。

関連情報