Ich habe diese einfache EingabeRandomisierung Text zwischen Begrenzern
I have {red;green;orange} fruit and cup of {tea;coffee;juice}
I Perl verwenden Muster zwischen zwei externen Klammer zu identifizieren und Begrenzern {
}
und randomisieren die Felder im Inneren mit dem internen delimiter ;
.
Ich bekomme diese Ausgabe
I have green fruit and cup of coffee
Das ist mein Arbeits Perl-Skript
perl -plE 's!\{(.*?)\}[email protected]=split/;/,$1;$x[[email protected]]!ge' <<< 'I have {red;green;orange} fruit and cup of {tea;coffee;juice}'
Meine Aufgabe ist es, dieses Eingabeformat
I have { {red;green;orange} fruit ; cup of {tea;coffee;juice} } and {nice;fresh} {sandwich;burger}.
Wie ich zu verarbeiten verstanden, sollte das Skript extern überspringen al Schließ Zahnspange { ... }
im ersten Textteil, der Text nach innen mit Öffnung und Schließung Klammern:
{ {red;green;orange} fruit ; cup of {tea;coffee;juice} }
Es sollte einen zufälligen Teil wählen, wie dies
{red;green;orange} fruit
oder
cup of {tea;coffee;juice}
Dann geht es tiefer:
green fruit
Schließlich Text verarbeitet wird, kann das Ergebnis einer der folgenden
I have red fruit and fresh burger.
I have cup of tea and nice sandwich
I have green fruit and nice burger.
I have cup of coffee and fresh burger.
Das Skript sollte den nächsten Text analysieren und randomisieren. Zum Beispiel
This {beautiful;perfect} {image;photography}, captured with the { {NASA;ESA} Hubble Telescope ; {NASA;ESA} Hubble Space Telescope} }, is the {largest;sharpest} image ever taken of the Andromeda galaxy { {— otherwise known as M31;— known as M31}; [empty here] }.
This is a cropped version of the full image and has 1.5 billion pixels. { You would need more than {600;700;800} HD television screens to display the whole image. ; If you want to display the whole image, you need to download more than {1;2} Tb. traffic and use 800 HD displays }
Ein Beispiel Ausgang
könnteThis beautiful image, captured with the NASA Hubble Telescope, is the
sharpest image ever taken of the Andromeda galaxy — otherwise known as
M31.
This is a cropped version of the full image and has 1.5 billion
pixels. You would need more than 700 HD television screens to display
the whole image.
Warum Sie 'srand' verwenden Sie? – choroba
Ich dachte, es gab einen guten Grund, aber (Lesen der Dokumente) nein. –