So verwenden Sie den Befehl ReadArray, um 2D -Array in Bash zu lesen

So verwenden Sie den Befehl ReadArray, um 2D -Array in Bash zu lesen

Bash ist eine beliebte Shell -Skriptsprache, die unter Linux- und Unix -Betriebssystemen verwendet wird. Es bietet eine Reihe von Befehlen und Funktionen, mit denen sich wiederholende Aufgaben automatisieren können. Das 'ReadArray' ist einer der hilfreichsten Befehle in Bash. Mit diesem Befehl können Zeilen aus einer Datei in ein 2D -Array gelesen werden. In diesem Beitrag werden wir mit dem Befehl "ReadArray" von Bash von Bashs "ReadArray" -Bewegung Zeilen aus einer Datei in ein 2D -Array lesen.

Verwenden Sie 'ReadArray' in Bash

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

ReadArray [-d delim] [-n count] [-o Ursprung] [-s count] [-t] Array


Die Optionen für den Befehl "ReadArray" sind:

'-d delim': Legt den Trennzeichen ein, wenn es beim Aufteilen von Zeilen in Array -Elemente aufgeteilt wird, und standardmäßig ist der Trennzeichen ein Newline -Zeichen.

'-n count': Gibt die maximale Anzahl von Zeilen an, die in das Array gelesen werden müssen.

'-O Ursprung': Legt den Startindex des Arrays fest.

'-s count': Gibt die Anzahl der Zeilen an, die vor dem Lesen in das Array überspringen können.

'-T': Entfernt das nachfolgende Newline -Charakter aus jeder Zeile, die in das Array gelesen wurde.

Hier ist ein Beispiel für die Verwendung von 'ReadArray' zum Lesen von Zeilen aus einer Datei in ein 2D -Array, und dafür habe ich a erstellt Testdatei.txt deren Inhalt ist:

1 2 3
4 5 6
7 8 9


Hier ist also das komplette Bash -Skript, das den Befehl 'ReadArray' demonstriert:

#!/Bin/Bash
# Zeilen aus einer Datei in das Array lesen
ReadArray -t -Zeilen < testfile.txt
# Deklarieren Sie ein 2D -Array mit 3 Zeilen und 3 Spalten
Declare -a Array
# Über die Linien iterieren und jede Zeile in Elemente aufteilen
denn ich in "$ !Zeilen [@] "; tun
Ifs = "lesen -r -a Elemente <<< "$lines[i]"
für j in "$ !Elemente [@] "; tun
if [[-n "$ Elements [j]"]]; Dann
Array [$ i, $ j] = $ Elements [j]
fi
Erledigt
Erledigt
# Drucken Sie das Array
für ((i = 0; i<3;i++)); do
für ((j = 0; j)<3;j++)); do
echo -n "$ Array [$ i, $ j]"
Erledigt
Echo
Erledigt


Hier habe ich zuerst ein 2D -Array namens "Array" deklariert und dann den Befehl "ReadArray" verwendet, um Zeilen aus einer Datei namens "TestFile" zu lesen.txt 'in das "Zeilen" -Array. Als nächstes iteriert der Code über das Array "Zeilen" und teilen jede Zeile mit den Befehlen "ifs" und "lesen" in Elemente auf.

Danach speichert es die Elemente im 2D -Array 'Array' und verwendet dann den Befehl read, um jede Zeile in Elemente aufzuteilen. Jetzt wird jedes Element dem entsprechenden Element im "Array" -Array und schließlich dem Inhalt des Array -Arrays "Array" verwendet, das für Schleifen verschachtelt ist.

Abschluss

Mit dem Befehl "ReadArray" können große Mengen an Daten in Bash -Skripten manipuliert werden. Wenn Sie die in diesem Artikel angegebenen Beispiele befolgen, können Sie in Ihren eigenen Bash -Skripten "ReadArray" verwenden, um Zeilen aus Dateien zu lesen und sie in 2D -Arrays zu verarbeiten.