
Я знаю, что можно удалить строки длиной более 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>'
Чтобы удалить строки, содержащие более 100 символов, отличных от <>, между a ">
и a </a><br>
.
решение2
То же самое, что и выше (если я правильно понимаю, что вы хотите сделать, то есть):
sed -e '/Y\{100\}/d'
Это сопоставляет все строки, содержащие 100 Y подряд, и удаляет их.