Bash-Schleife durch Dateien in einem Verzeichnis

Bash Loop Through Files Directory



In Ubuntu, einschließlich Bash, haben Schleifen es ermöglicht, Operationen auf mehrere Dateien anzuwenden. Das Schleifen ist am effektivsten, da es dem Benutzer ermöglicht, die gleiche Logik wiederholt auf das Element anzuwenden, indem eine kleine Codezeile verwendet wird.

Um das Konzept des Schleifens von Dateien im Verzeichnis zu verstehen, benötigen Sie Zugriff auf die Ubuntu-Anwendung und -Dienste. Wenn Sie über einige Berechtigungen verfügen, können Sie nur mit Dateien und Verzeichnissen arbeiten.







Sie sollten Bash auf dem Ubuntu-Betriebssystem installiert haben. Bei einigen Installationen wird es standardmäßig bei der Aktualisierung von Paketen installiert. Wenn es bereits installiert ist, müssen Sie die Version aktualisieren, da sie über 4 sein muss. Um mit der aktuellen Anleitung fortzufahren, müssen Sie die Version über 4 beibehalten. Um die Version der vorinstallierten Bash in Ihrem System zu überprüfen, verwenden Sie die Befehl auf dem Ubuntu-Terminal.



$Bash--Ausführung



Sie müssen also einige Funktionen für Dateien und Verzeichnisse ausführen. Sie können die unten erklärten Befehle in jedem Verzeichnis Ihrer Wahl ausführen. Aber um genau zu sein, ist es vorzuziehen, ein neues Verzeichnis anzulegen, damit alle Inhalte dieses direkt beim Öffnen leicht zugänglich sind.





Der allererste Schritt besteht darin, ein Verzeichnis zu erstellen. Wir haben einen Beispielnamen des Verzeichnisses abc genommen. Erstellen Sie ein Verzeichnis, indem Sie den Befehl ausführen.

$mkdirABC



Nachdem Sie das Verzeichnis erstellt haben, müssen Sie nun alle Befehle dafür ausführen. Wechseln Sie also nach der Erstellung des Verzeichnisses zu diesem Verzeichnis. Verwenden Sie den unten zitierten Befehl:

$CDABC

Nachdem Sie in das Verzeichnis gegangen sind, erstellen Sie nun einige Dateien mit dem Touch-Befehl.

$berührenDatei1.txt

Viele Methoden werden verwendet, um eine Datei in Ubuntu zu erstellen. Neben dem Touch-Befehl haben wir hier den echo-Befehl verwendet, um eine Datei zu erstellen und den Inhalt darin gemeinsam in einem einzigen Befehl hinzuzufügen:

$rauswerfenLinux, Ubuntu, Postgresql>Datei7.txt

Diese Datei wird in einem einfachen Verzeichnis erstellt, das derzeit standardmäßig ausgeführt wird. Der Name des neu erstellten Verzeichnisses wird also nicht mit der Eingabeaufforderung hinzugefügt. Sie können Dateien auch erstellen, indem Sie einen Bereich und eine Erweiterung im Touch-Befehl verwenden.

$berührenDatei-{1..8}.TXT

Durch die Verwendung dieses Befehls in neuen Dateien mit .txt-Erweiterungen werden mit einem einzigen Befehl erstellt.

Danach können Sie nun das neu erstellte Verzeichnis durchlaufen. Zeigen Sie die Dateinamen an. Da wir die im Verzeichnis vorhandenen Dateien durchlaufen müssen, benötigen wir eine Schleife. Schleifen sind sehr effektiv zu verwenden, da sie die Daten in kürzerer Zeit abrufen und weniger Eingaben erfordern. Hier verwenden wir eine for-Schleife. Bei Verwendung dieser Schleife wird jeder Dateiname in der nächsten Zeile angezeigt.

$zum Datei in *;tun rauswerfen $Datei;getan

* wird für alle Dateien in diesem Verzeichnis verwendet. Dadurch kann die „for“-Schleife alle Dateien erfassen. Um die Ausgabe jedoch präziser zu gestalten, können Sie einige Begriffe mit dem Sternzeichen hinzufügen. „Datei-*“ wird beispielsweise für alle Dateien verwendet, die mit der Datei beginnen. Und *.txt, um die Dateien mit der Erweiterung .txt abzurufen. Wir werden diese Beispiele im Artikel weiter verwenden.

Diese Schleife funktioniert so, dass sie alle Dateien aus dem Verzeichnis holt und dann alle Dateien über den echo-Befehl anzeigt. Das $-Zeichen steht hier für den Namen der Datei. Aus dem Ergebnis können Sie sehen, dass jeder Dateiname angezeigt wird.

Nachdem Sie die erstellten Dateien überprüft haben, indem Sie die Dateinamen anzeigen, ist es jetzt an der Zeit, den Wert in die Dateien einzugeben, da die erstellten Dateien leer sind. Dies kann manuell erfolgen, indem jede Datei im Texteditor geöffnet und dann die Daten geschrieben werden. Die zweite Möglichkeit besteht darin, Daten in jede Datei über den Befehl im Terminal einzugeben. Es erfordert jedoch Zeit, die Daten in jede Datei durch einen einzigen Befehl für jede Datei einzugeben. Aber es kann einfach und kollektiv durchgeführt werden, indem man die for-Schleife in einem einzigen Befehl verwendet.

$zum Datei in *;tun rauswerfen -2 $Datei Linux Ubuntu> $Datei;getan

Nach der Ausführung des Befehls wurde der Wert in jede von uns erstellte Datei eingetragen. Bei Verwendung mit Echo behält das Flag „-e“ die neue Zeile in der Datei bei. Um die eingegebenen Daten zu sehen, können Sie zum Verzeichnis ‚abc‘ navigieren. Öffnen Sie nun eine beliebige Textdatei. Die Datei ist nicht mehr leer.

‘$file zeigt den Dateinamen zuerst in der Datei an, und die von Ihnen eingegebenen Daten werden in der zweiten Zeile als Vorschau angezeigt, da verwendet wird, um die danach verwendeten Wörter in eine andere Zeile zu verschieben. Sie können auch die über den Befehl eingegebenen Daten überprüfen.

$zum Datei in *;tun Katze $Datei;getan

Der Befehl Cat wird verwendet, um die in allen Dateien des Verzeichnisses vorhandenen Daten abzurufen.

Sowohl das Eingeben der Daten als auch das Abrufen der Daten kann über einen einzigen Befehl erfolgen.

$zum Datei in *;tun rauswerfen-Und$Datei Bash-Programmierung> $Datei;Katze $Datei;getan

Der erste Schritt besteht darin, die Daten in die Datei zu schreiben und sie dann anzuzeigen. Wenn Sie den Befehl ausführen, sieht die Ausgabe wie folgt aus:

Jede Datei enthält denselben Wert. Dies liegt an der 'for'-Schleife.

Wir kennen die Schleife zum Holen der Daten und Einfügen der Werte usw., aber die Schleife wird auch verwendet, um Backups zu erstellen. Diese Dateien haben am Ende die Erweiterung .bak. Führen Sie nun den Backup-Befehl in der Shell aus, um die Sicherung jeder Datei anzuzeigen.

$zum Datei in *;tun cp $Datei $Datei.hinter;getan;

Das Schlüsselwort cp wird verwendet, um alle Dateien zu sichern. Jetzt sehen Sie die Dateien, auf die dieser Befehl angewendet wird. Wir verwenden den Befehl als:

$ls- das

Nun ist aus der Ausgabe ersichtlich, dass die Details der Dateien angezeigt werden. Datum, Dateiname, Benutzername und Uhrzeit auch der Löschung. Außerdem haben Sie eine genaue Kopie jeder Datei.

Wenn wir nur die JPEG-Dateien wollen. Wir werden dies im Befehl verwenden

$zum Datei in *.jpeg;tun rauswerfen $Datei;getan

Dadurch werden nur die Namen der Bilder angezeigt.

Eine einfache Suche kann die gleiche Funktion auch erfüllen. Es holt alle Dateien mit der Erweiterung .sh.

$finden. - Name*NS

Wir verwenden das Schlüsselwort find in der for-Schleife.

$zum Datei in *;tunfinden. Datei.*;getan

Dies bringt alle Dateien in das aktuelle Verzeichnis. Diese haben die Erweiterungen .bak, .jpeg, .txt. usw.

Wenn Sie nun den Namen aller Verzeichnisdateien und die darin enthaltenen Daten sehen möchten, wird dies auch durch die „for“-Schleife erledigt.

$zum Datei in *;tun Datei $Datei;getan

Abschluss

Das Durchlaufen der Dateien in einem beliebigen Verzeichnis ist, wie wir wissen, nicht mehr schwierig, wenn Sie Schleifen in Bash verwenden und auf den Linux-Betriebssystemen ausführen. Dieses Tutorial ist eine vollständige Anleitung zum Erstellen, Zugreifen auf und Ausführen von Operationen für das Verzeichnis mithilfe einer „for“-Schleife.