Hier ist ein Beispieltext. Bitte denken Sie daran, dass es alle speziellen Zeichen, Registerkarten und weiße Räume enthalten kann, obwohl dieses Beispiel nicht alle möglichen Kombinationen darstellt. < /P>
Code: Select all
^[[200~a^[[200~aaa aM1bb bbbM1ccc[$cM2ddddM2eeeeeM3ffffff fM3ggggggg M3hhhhh hhM3kkkkk~
< /code>
Wählen Sie den Text zwischen dem ersten Start des Markers M1 aus und dem zuletzt übereinstimmenden Ende des Markers M3. Der Text, der aus dem Beispiel ausgewählt werden sollbb bbbM1ccc[$cM2ddddM2eeeeeM3ffffff fM3ggggggg M3hhhhh hh< /code> < /p>
< /blockquote>
Wählen Sie den Text zwischen dem letzten Start des Markers M1 zum ersten übereinstimmenden Ende des Markers M3.ccc[$cM2ddddM2eeeee
Ich habe dies versucht, es hat aber den letzten Start des Markers zum letzten Ende des Markers
ausgewähltecho "^[[200~a^[[200~aaa aM1bb bbbM1ccc[\$cM2ddddM2eeeeeM3ffffff fM3ggggggg M3hhhhh hhM3kkkkk~"|sed -E "s|.*M1(.*)M3.*$|\1|g"
ccc[$cM2ddddM2eeeeeM3ffffff fM3ggggggg M3hhhhh hh
< /code>
Wie ist es möglich? Der einzelne Sed Regex -Ausdruck wäre der beste. Was ich meine, einzelne Regex ist für jede über zwei Anforderungen. d.h. zwei Regex
brauchen auch den äquivalenten Python -Re -Expression. < /p>