Der Befehl touch wird verwendet, um Zeitstempel in Dateien im UNIX/Linux -Betriebssystem zu erstellen, zu ändern und zu bearbeiten. Wie im Bild gezeigt, haben wir also die Anweisung „Berührung“ in unserer Shell ausprobiert, um eine neue Textdatei zu erstellen. GNU Nano ist ein grundlegender integrierter Befehlszeilen-Editor für UNIX/Linux-Betriebssysteme. Geben Sie "Nano" nach dem $ -Symbol ein, gefolgt vom Namen der Datei zum Öffnen oder Erstellen einer neuen Datei.
$ touch neu.txtBeispiel 1: Lesen Sie aus der Datei als Array
Der Befehl "nano" in der Shell öffnet das "neue".TXT ”-Datei im Editor„ Nano “. Wir haben den Text eins, zwei und drei in die Textdatei in drei separaten Zeilen wie gezeigt eingegeben. Speichern Sie diese einfache Textdatendatei über das Strg+S und schließen Sie den Editor „Nano“ über die Strg+X -Verknüpfung.
Es ist Zeit, die MAPFILE -Anweisung zu verwenden, um die gerade hinzugefügten Textdaten in ein Array -Formular zu lesen. Die Textzeilen in der neuen.Die TXT -Datei wird als Array -Elemente in der Variablen „var“ unter Verwendung des Befehl mapFile gespeichert. In der zweiten Zeile wird die Echo -Abfrage verwendet, um alle Daten auf jedem Index eines Arrays zu drucken, das in einem Array -Format in der Variablen „var“ gespeichert ist. In ähnlicher Weise werden die nächsten Zeilen der Anweisungscodes „Echo“ verwendet, um Daten in einem bestimmten Index anzuzeigen, i.e., 0,1,2,3 eines Arrays getrennt. Da das Array nur 3 Werte enthält, gibt das Ergebnis von Index 3 nichts zurück.
$ mapfile var < new.txtBeispiel 2: Lesen Sie Ausgabedaten in ein Array
Wir können auch einige Ausgabemodaten aus einer Bash -Anweisung in das Array mit der MAPFILE -Anweisung verwenden. Wir haben die Printf -Anweisung verwendet, um ihre Ausgabedaten in ein Array „arr."Drei Werte" Ana "," Paul "und" George ", getrennt durch Linienbrecher -Spezialcharakter" \ n ", werden unter Verwendung der MAPFILE -Anweisung darin gespeichert. Anschließend wird der erste Echobefehl verwendet, um alle Daten in einem Array anzuzeigen. Die Daten, die in jedem Index eines Array "arr" auftreten. Da auf dem dritten Index eines Arrays keine Daten vorhanden sind, wird auf dem Bildschirm keine Ausgabe angezeigt. Bewegen wir uns zum nächsten Beispiel.
$ mapfile arr < <(printf “Ana \nPaul \n George\n”)Beispiel 03: MAPFILE -N -Option
Der Befehl kartendatei enthält integrierte Optionen für die Ausführung. Der -n Option wurde verwendet, um die Anzahl der Werte aus der Datendatei als Eingabe für ein Array anzugeben. Alle Zeilen sollten in ein Array kopiert werden, wenn der Wert von n Null ist. Die erste Zeile im folgenden Beispiel verwendet den Befehl kartendatei mit der Option -n -Option auf 2. Dies bedeutet.
Der Befehl echo zeigt Daten zu allen Indizes des Array „var“ an, i.e., 2 Indizes, was impliziert, dass der Befehl kartendatei die ersten beiden Zeilen aus der Datei mit der Option -n kopiert. Wenn Sie die Option "-n" mit Wert 1 in der MAPFILE-Anweisung verwenden, lesen Sie nur eine einzige Zeile aus der Datei, wie unten gezeigt.
$ mapfile -n var < new.txtBeispiel 04: MAPFILE -T -Option
Die Option "-t" wird verwendet, um Newlines aus einem Artikel zu streifen/zu entfernen, indem sie in einem Array gespeichert werden. Das folgende Beispiel zeigt die praktische Ausführung des Befehls -t. Der Substitutionsbetreiber (<) is used to populate the data into an array named “Arr.” The Mapfile instruction receives standard input strings, i.e., “Ana,” “Paul,” and “George,” from the printf statement and appends newlines (-t) to each line. When we run the entire command, mapfile silently scans the text lines and places each line into its specific array variable. The use of the printf statement is simply showing us that the string elements have been considered as array elements while “\n” has been used to give the line break in the shell.
$ mapfile -t arr< <(printf “Ana \nPaul \nGeorge\n”)Die folgenden Beispiele zeigen, wie die einzelnen Elemente eines Arrays mit Indizes gedruckt werden können.
$ printf "%s \ n" "$ arr [0]"Im folgenden Beispiel druckt der Befehl echo alle Elemente der Array -Variablen -Kartnatfile, die durch einen Raum getrennt sind.
$ printf "ana \ npaul \ ngeorge \ n" | (mapFile; echo "$ mapfile [@]")Wir können es beheben und die Linienbrennungen entfernen, indem wir die Option -t -Option der MAPFILE -Anweisung verwenden.
$ printf "ana \ npaul \ ngeorge \ n" | (MAPFILE -T; Echo "$ mapFile [@]")Abschluss
In diesem Artikel ging es um die Nutzung der Bash -Kartellafelanweisung zum Ubuntu 20.04 System, um alle Eingabetxtdaten aus einem Array in einer Variablen zu nehmen und sie danach anzuzeigen. Wir haben die MAPFILE-Anweisung mit "-n "- und" -t "-Optionen ausprobiert, um ein anderes Format von Ausgängen für Arrays an der Bash-Shell zu erhalten.