
Ich weiß, dass ich Zeilen mit mehr als 100 Zeichen folgendermaßen löschen kann:
sed '/^.\{100\}..*/d'
Aber ich habe die folgende Beispielzeile:
<a href="http://xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</a><br>
Ich muss also nur die Zeilen löschen, in denen „YYY“ steht:
">Y...Y...Y</a><br>
ist länger als 100 Zeichen. Wie kann ich das machen?
Ich verwende OpenBSD.
Antwort1
grep -vE '">[^<>]{101,}</a><br>'
Um Zeilen zu entfernen, die mehr als 100 Nicht-<>-Zeichen zwischen a ">
und a enthalten </a><br>
.
Antwort2
Dasselbe wie oben (wenn ich richtig verstehe, was Sie tun möchten):
sed -e '/Y\{100\}/d'
Dies gleicht alle Zeilen ab, die hintereinander 100 Y enthalten, und löscht sie.