BASH-Programmierung

So verwenden Sie $IFS in Bash?

So verwenden Sie $IFS in Bash?
Bei der Skripterstellung müssen wir aus verschiedenen Gründen String-Daten unterbrechen. Split ist eine in vielen Computersprachen integrierte Funktion, die jede Datenkette in verschiedene Teile aufteilt. In bash fehlt jedoch eine integrierte Funktion zum Teilen einer Zeichenfolge. Um einen beliebigen Zeichenfolgenwert zu unterbrechen, müssen viele einzelne und zusammengesetzte Trennzeichen verwendet werden. Ein variabler IFS (Internal Field Separator) wird verwendet, um ein bestimmtes Trennzeichen für die Zeichenfolgenteilung anzugeben. In diesem Handbuch erfahren Sie, wie Sie verschiedene Methoden verwenden, um den Prozess des Brechens eines String-Werts in der bash mit dem $IFS . zu veranschaulichen.

Voraussetzungen

Stellen Sie sicher, dass das Linux-basierte System installiert und konfiguriert ist. Wir arbeiten an Ubuntu 20.04 Linux-System. Melden Sie sich von Ihrem Ubuntu-Kontobenutzer an, um mit der Arbeit an IFS zu beginnen. Es ist besser, wenn Sie sich von Ihrem Root-Benutzerkonto aus anmelden. Starten Sie nach der Anmeldung das Befehlszeilenterminal in Ihrem System über den Aktivitätsbereich.

Beispiel 01: IFS Aufteilen einer Zeichenfolge mit Leerzeichen als Wert

In unserem ersten Beispiel werden wir das Konzept des Aufteilens eines Strings in bash verstehen, während wir Leerzeichen als Trennzeichen mit der IFS-Variablen verwenden using. Zuerst müssen wir eine Bash-Datei in unserem System erstellen. Wir können neue Dateien in unserem Linux-System mit dem 'touch'-Befehl erstellen. Wie unten gezeigt, haben wir eine Bash-Datei 'file1 . erstellt.sh' mit der 'touch'-Anweisung:

$ Datei berühren1.Sch

Öffnen Sie das Home-Verzeichnis Ihres Linux-Systems mit dem Ordnersymbol, das in der linken Ecke Ihres Ubuntu 20 angezeigt wird.04 Desktop. Sie finden Ihre neu erstellte Bash-Datei „file1“.sch“ darin. Öffnen Sie die Datei „Datei1“.sh“ und geben Sie das folgende Skript ein. Zuerst haben wir einen String namens „str“ mit einem String-Wert definiert. Dann definieren wir eine Trennzeichenvariable IFS als Variable mit Leerzeichen als Wert. Danach haben wir die read-Anweisung verwendet, um die aufgeteilten Daten mit dem Flag „-a“ in ein Array „strarr“ zu speichern und zu lesen. Eine 'echo'-Anweisung wird verwendet, um eine String-Zeile zusammen mit der Gesamtzahl der Wörter eines Arrays mit dem "$#strarr[*]" auszugeben. Die „for“-Schleife wird verwendet, um die Werte eines Arrays in geteilter Form mit der Variablen „var“ zu drucken. Der Backslash „\n“ wurde innerhalb der Druckzeile zusammen mit der Variablen „var“ verwendet, um nach jedem Wert des Arrays eine geteilte Pause von einer Zeile zu geben. Speichern Sie das Skript mit der Taste „Strg+S“ und schließen Sie die Datei, um fortzufahren.

Komm zurück zur Terminalseite. Jetzt werden wir die Ausgabe des obigen Codes überprüfen. Dazu verwenden wir den Befehl 'bash' zusammen mit dem Namen einer Datei "Datei1".sh“, um es auszuführen, was unten gezeigt wird. Zuerst wurde die in der „echo“-Anweisung erwähnte Zeile zusammen mit der Anzahl der Wörter eines Arrays angezeigt. Danach wurden alle Werte des Arrays mit der von IFS geteilten "for" -Schleife angezeigt.

$ bash-Datei1.Sch

Beispiel 02: IFS Split eine Zeichenfolge mit Zeichen als Wert

Im oben genannten Beispiel haben Sie gesehen, wie Sie String-Variablen in Teile aufteilen und dabei Leerzeichen als Trennzeichen von IFS verwenden using. Jetzt werden wir ein Zeichen verwenden, um eine Zeichenfolge mit einem IFS-Trennzeichen zu teilen. Öffnen Sie Ihr Befehlsterminal und erstellen Sie eine neue Bash-Datei „file2“.sh“ in Ihrem Home-Verzeichnis des Linux-Systems mit dem Befehl „touch“ wie folgt:

$ Datei berühren2.Sch

Öffnen Sie das Home-Verzeichnis Ihres Linux-Systems. Darin finden Sie Ihre neu erstellte Datei. Öffnen Sie Ihre neu erstellte Datei und schreiben Sie den unten aufgeführten Bash-Code. In Zeile 3 haben wir eine „echo“-Anweisung initiiert, um eine Zeile zu drucken. Die nächste Zeile liest die Eingabe eines Benutzers in einem Terminal mit dem Schlüsselwort „read“. Als nächstes haben wir das Trennzeichen „IFS“ definiert und das Komma „“, als Zeichenwert festgelegt character. Eine weitere „read“-Anweisung wurde angegeben, um die durch Kommas getrennten Werte einer Zeichenfolge zu lesen und zu speichern, die von einem Benutzer in ein Array „strarr“ eingegeben wird. Schließlich haben wir drei echo-Anweisungen initiiert, um die durch Kommas getrennten Splitwerte als Variablen zu drucken, wie in der Abbildung gezeigt. Speichern und schließen Sie diese Datei.

Jetzt müssen wir diese gespeicherte Datei ausführen. Führen Sie dazu den unten gezeigten Bash-Befehl gefolgt vom Namen einer Datei in einem Terminal aus. Sie müssen einen Zeichenfolgenwert hinzufügen, der ein Komma „“, innerhalb von Werten enthalten muss, und die Eingabetaste drücken. Jetzt wurden Ihre Daten in einem Array „strarr“ gespeichert. Die letzten drei Zeilen zeigen die Ausgabe der „echo“-Anweisungen. Sie können sehen, dass jeder Text vor und nach dem Komma als separater Wert verwendet wurde.

$ bash-Datei2.Sch

Beispiel 03: IFS Split String

Wir haben beide vorherigen Beispiele in einer Bash-Datei erstellt. Wir haben jetzt eine Illustration zur Verwendung von „IFS“ ohne eine Bash-Datei zu erstellen. Öffnen Sie dazu Ihre Befehlsshell. Zuerst müssen wir eine Zeichenfolge „var“ mit einem Zeichenfolgenwert erstellen. Diese Zeichenfolge enthält Kommas nach jedem Wort.

$ var=”Hallo, ich bin 25 Jahre alt.”

Als nächstes initialisieren Sie die Variable 'IFS' mit dem Komma als Trennzeichen.

$IFS=,

Danach haben wir die „for“-Schleife verwendet, um jedes Wort aus der Variablen „var“ getrennt durch ein IFS-Trennzeichen zu suchen und es mit der „echo“-Anweisung auszugeben.

$ für i in $var
>mache
>echo [$i]
>Fertig

Sie haben die Ausgabe unten. Es wird jedes Wort einer String-Variablen „var“ in einer neuen Zeile anzeigen, da das Trennkomma „“ als Trennzeichen verwendet wird.

Fazit:

In dieser Anleitung haben Sie verschiedene Methoden kennengelernt, um die Eingabewerte in einer Bash aufzuteilen, z.G., mit Leerzeichen oder mit einem Zeichen. Wir hoffen, dass die in diesem Tutorial erwähnten Illustrationen Ihnen helfen, jede Zeichenfolge mit dem IFS-Trennzeichen zu unterbrechen.

Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...