So verwenden Sie den Befehl readarray zum Lesen eines 2D-Arrays in Bash

Bash ist eine beliebte Shell-Skriptsprache, die in Linux- und Unix-Betriebssystemen verwendet wird. Es bietet einen umfangreichen Satz an Befehlen und Funktionen, mit denen sich wiederkehrende Aufgaben einfach automatisieren lassen. Das „readarray“ ist einer der hilfreichsten Befehle in Bash. Mit diesem Befehl können Zeilen aus einer Datei in ein 2D-Array eingelesen werden. In diesem Beitrag erfahren Sie, wie Sie mithilfe des Bash-Befehls „readarray“ Zeilen aus einer Datei in ein 2D-Array einlesen.

Verwendung von „readarray“ in Bash

Der Befehl „readarray“ liest Zeilen aus einer Datei oder Standardeingabe und weist sie einem Array zu. Die Syntax für die Verwendung von „readarray“ lautet wie folgt:

readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] Array

Die für den Befehl „readarray“ verfügbaren Optionen sind:

‚-d DELIM‘: Legt das Trennzeichen fest, das beim Aufteilen von Zeilen in Array-Elemente verwendet werden soll. Standardmäßig ist das Trennzeichen ein Zeilenumbruchzeichen.

‚-n COUNT‘: Gibt die maximale Anzahl der Zeilen an, die in das Array eingelesen werden sollen.

‚-O URSPRUNG‘: Legt den Startindex des Arrays fest.

‚-s COUNT‘: Gibt die Anzahl der Zeilen an, die vor dem Einlesen in das Array übersprungen werden sollen.

‚-T‘: Entfernt das abschließende Zeilenumbruchzeichen aus jeder in das Array eingelesenen Zeile.

Hier ist ein Beispiel für die Verwendung von „readarray“, um Zeilen aus einer Datei in ein 2D-Array zu lesen, und dafür habe ich ein erstellt testfile.txt deren Inhalt ist:

1 2 3
4 5 6
7 8 9

Hier ist also das vollständige Bash-Skript, das die Verwendung des Befehls „readarray“ demonstriert:

#!/bin/bash
# Zeilen aus einer Datei in das Array einlesen
readarray -t Zeilen < testfile.txt
# Deklarieren Sie ein 2D-Array mit 3 Zeilen und 3 Spalten
deklarieren -A-Array
# Durchlaufen Sie die Zeilen und teilen Sie jede Zeile in Elemente auf
für i in „${!lines[@]}“; Tun
IFS=“ read -r -a elements <<< "${lines[i]}"
für j in „${!elements[@]}“; Tun
Wenn [[ -n „${elements[j]}“ ]]; Dann
Array[$i,$j]=${Elemente[j]}
fi
Erledigt
Erledigt
# Drucken Sie das Array
für ((i=0;i<3;i++)); Tun
für ((j=0;j<3;j++)); Tun
echo -n „${array[$i,$j]} „
Erledigt
Echo
Erledigt

Hier habe ich zunächst ein 2D-Array namens „array“ deklariert und dann mit dem Befehl „readarray“ Zeilen aus einer Datei namens „testfile.txt“ in das Array „lines“ gelesen. Als Nächstes durchläuft der Code das Array „lines“ und teilt jede Zeile mithilfe der Befehle „IFS“ und „read“ in Elemente auf.

Danach speichert es die Elemente im 2D-Array „array“ und teilt dann jede Zeile mit dem Lesebefehl in Elemente auf. Nun wird jedes Element dem entsprechenden Element im Array „array“ zugewiesen und schließlich wird der Inhalt des Arrays „array“ mithilfe verschachtelter for-Schleifen gedruckt.

Abschluss

Der Befehl „readarray“ erleichtert die Manipulation großer Datenmengen in Bash-Skripten. Indem Sie den Beispielen in diesem Artikel folgen, können Sie beginnen, „readarray“ in Ihren eigenen Bash-Skripten zu verwenden, um Zeilen aus Dateien zu lesen und sie in 2D-Arrays zu verarbeiten.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen