Einfache Methode zum Mischen der Elemente eines Arrays in BASH-Shell?

7

Ich kann das in PHP machen, versuche aber innerhalb der BASH-Shell zu arbeiten. Ich muss ein Array nehmen und dann zufällig den Inhalt mischen und dieses an somefile.txt ablegen.

Also gegeben Array Heresmyarray, von Elementen a;b;c;d;e;f; würde es eine Ausgabedatei produzieren, output.txt , die Elemente f;c;b;a;e;d;

enthalten würde

Die Elemente müssen das Semikolon-Trennzeichen beibehalten. Ich habe eine Reihe von Bash-Shell-Array-Operationen gesehen, aber nichts, was diesem einfachen Konzept nahe kommt. Danke für jede Hilfe oder Vorschläge!

    
Dave 04.04.2011, 00:41
quelle

3 Antworten

8

Wenn Sie sie nur in eine Datei einfügen möchten (verwenden Sie die Umleitung & gt;)

%Vor%

Wenn Sie die Elemente in ein Array einfügen möchten

%Vor%

Wenn Ihre Daten &#abcde;

haben %Vor%     
kurumi 04.04.2011, 01:45
quelle
7

Aus dem BashFaq

  

Diese Funktion mischt die Elemente eines Arrays mit dem Knuth-Fisher-Yates Shuffle-Algorithmus in-Place.

%Vor%

Ausgabe

%Vor%     
SiegeX 04.04.2011 00:46
quelle
6

Die angenommene Antwort stimmt nicht so gut mit der Überschrift überein, obwohl die Details in der Frage ein wenig mehrdeutig sind. Die Frage fragt, wie man Elemente eines Arrays in BASH mischt, und Kurumis Antwort zeigt eine Möglichkeit, den Inhalt eines Strings zu verändern.

kurumi macht trotzdem Gebrauch von dem 'shuf' Befehl, während siegeX zeigt, wie man mit einem Array arbeitet.

Wenn Sie die beiden zusammenfügen, erhalten Sie eine "einfache Methode, die Elemente eines Arrays in BASH-Shell zu mischen":

%Vor%     
David McKinley 12.02.2017 21:49
quelle

Tags und Links