Ist es möglich, Vorkommen einer Zeichenfolge rekursiv zu ersetzen, ohne dieselbe Folge erneut zu durchlaufen?
Durch Ausführen eines sed
wie in den folgenden Szenarien kann ich die erwähnte Ausgabe erhalten.
$ echo XX | sed -e 's/XX/XoX/g'
XoX
$ echo XXX | sed -e 's/XX/XoX/g'
XoXX
$ echo XXXX | sed -e 's/XX/XoX/g'
XoXXoX
Ich erwarte jedoch, dass die Ausgabe dem folgenden Verhalten folgt.
Eingang:
XX
XXX
XXXX
Erwartete Ausgabe:
XoX
XoXoX
XoXoXoX
Kann man mit sed alleine das erwartete Verhalten erreichen?
X
und nichts anderem bestehen. Beide LösungenX
by behoben.
. Bitte siehe Bearbeiten.Ich habe geprüft, ob es irgendeine Art von Flagge gibt, die dies ermöglicht.
Selbst wenn dieses Verhalten vorliegt, wird es sehr ressourcenintensiv sein.
In diesem speziellen Anwendungsfall ist es jedoch möglich, den Ausdruck nur zweimal zu haben und die erforderliche Funktionalität zu erzielen. dh mit 2 sich wiederholenden
sed
Ausdrücken.quelle