GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So mischen Sie Zeilen in einer Datei unter Linux

Da es bereits durch die zahlreichen Linux-Befehlszeilentipps und -artikel, auf die Sie auf dieser Website gestoßen sind, festgestellt wurde, dass das Linux-Betriebssystem der Tausendsassa der Computer ist.

Es ist an der Zeit, den Ruf dieses Betriebssystems weiter zu steigern. Als Teil der Linux-Dateiverwaltung werden wir nach Möglichkeiten suchen, Zeilen in einer Datei zu mischen, die sich in einer Linux-Betriebssystemumgebung befindet.

Das Mischen von Zeilen in einer Datei in einer Linux-Betriebssystemumgebung kann zwei Ansätze haben. Bei Ansatz eins möchten Sie möglicherweise die Zeilen in einer Zieldatei mischen/neu anordnen, damit sie in einer bestimmten erforderlichen Reihenfolge angezeigt werden. In einem solchen Fall wird ein Sortierbefehl aufgerufen.

Bei Ansatz 2 achten Sie nicht auf die Reihenfolge, in der die letzten Zeilen in der Zieldatei erscheinen sollen. In solchen Fällen ein shuf-Befehl aufgerufen wird.

Dieser Artikel führt uns durch verschiedene Linux-Techniken zum zufälligen Mischen von Zeilen in einer Datei unter Linux.

Problembeschreibung

Wir müssen eine Beispieltextdatei mit einigen Zeilen erstellen, auf die wir verweisen werden, während wir verschiedene noch zu besprechende Linux-Shuffling-Befehle implementieren und ausführen.

$ sudo nano sample_file.txt

Wir können den cat-Befehl für die nummerierte Ansicht dieser gesamten Datei verwenden:

$ cat -n sample_file.txt

Der Katzenbefehl Ausgabe sagt uns, dass wir es mit einer Textdatei mit insgesamt 15 zu tun haben Linien. Außerdem, wie Sie vielleicht bemerkt haben, Zeilen 12 bis 14 sind repetitiv. Das Vorkommen dieser drei Zeilen hilft uns zu verstehen, wie verschiedene Mischbefehle funktionieren.

Shuffling Lines Using the Shuf Command in Linux

Da die GNU Coreutils Paket hostet shuf Befehl, sollte es standardmäßig in Ihrer Linux-Betriebssystemdistribution installiert werden. Die Hauptfunktion des shuf Der Befehl besteht darin, zufällige Permutationen basierend auf einer ihm zugeführten Eingabe zu generieren.

Der Arbeitsmechanismus des shuf Befehl ist wie folgt; Es lädt zuerst die Eingabedaten in den Speicher und verweist darauf, ob der freie Speicher größer als die Eingabedaten/Dateigröße ist, bevor es mit seiner Ausführung fortfährt.

Die Syntax lautet wie folgt:

$ shuf [TARGET_INPUT_FILE] 

In unserem Fall sieht die Implementierung wie folgt aus:

$ shuf sample_file.txt

Wie Sie sehen können, haben wir es geschafft, die Zeilen in unserer Beispieltextdatei zufällig zu mischen. Wenn Sie shuf ausführen Befehl, immer wieder, erhalten Sie jedes Mal ein anderes Ergebnis:

$ shuf random_file.txt 

Verwenden Sie den Sortierbefehl, um Zeilen in Linux zu mischen

Während die Sortierung Der Befehl wird hauptsächlich verwendet, um die Zeilen einer Datei auf eine bestimmte Weise neu anzuordnen. Wir können diese Dateizeilen zufällig anordnen, wenn wir die Sortierung kombinieren Befehl mit dem -R Option.

$ sort -R sample_file.txt 

Das wiederholte Ausführen des Befehls sollte jedes Mal zu anderen Ergebnissen führen.

Awk-Befehl verwenden, um Dateizeilen unter Linux zu mischen

Laut seiner Linux-Manpage (man awk ), awk ist eine perfekte Programmiersprache zum Scannen von Mustern und zur Textverarbeitung. Um jedoch seine Verwendung beim Mischen von Zeilen zu verstehen, müssen Sie sich mit Programmierkonzepten wie Variablen, Schleifen (While-Schleifen) und Anweisungen (If-Anweisung) vertraut machen, wie unten gezeigt:

awk 'BEGIN{srand() }
{ lines[++d]=$0 }
END{
    while (1){
    if (e==d) {break}
        RANDOM = int(1 + rand() * d)
        if ( RANDOM in lines  ){
            print lines[RANDOM]
            delete lines[RANDOM]
            ++e
        }
    }
}' sample_file.txt

Wir sind jetzt mit dem Mischen von Zeilen in einer Datei unter Linux vertraut.


Linux
  1. Linux-Dateibefehl:So bestimmen Sie den Dateityp in Linux

  2. So speichern Sie die Befehlsausgabe in einer Datei unter Linux

  3. So zeigen Sie bestimmte Zeilen einer Datei in der Linux-Befehlszeile an

  4. Linux-wc-Befehl

  5. So zählen Sie die Anzahl der Zeilen in einer Datei unter Linux (wc- und nl-Befehlsbeispiele)

So verwenden Sie einen Dateibefehl unter Linux

So öffnen Sie eine Datei unter Linux

So drucken Sie doppelte Zeilen in einer Textdatei unter Linux

So kehren Sie Zeilen in einer Datei zeichenweise in Linux um

So verwenden Sie den Befehl lsof unter Linux

So verwenden Sie den Linux-Befehl shred