Linux-Befehlszeilenbenutzer sind mit dem Konzept der Umleitungsoperatoren vertraut, die Ausgaben in eine Datei schreiben oder Eingaben aus einer Datei lesen können.
Der Operator '>'
schreibt die Ausgabe in eine neue Datei oder in eine vorhandene Datei; in diesem Fall löscht es alles, was zuvor in der Datei vorhanden war. Der Operator '>>'
hingegen hängt die Ausgabe am Ende einer bestehenden Datei an. Es gibt jedoch keinen speziellen Operator, um neuen Text an den Anfang einer Datei zu schreiben.
Heute werden wir zwei Möglichkeiten sehen, um unter Linux Text am Anfang einer Datei hinzuzufügen:eine mit einer Problemumgehung und eine mit einem Befehl.
Hinweis :Es ist ein guter Ansatz, zuerst die Originaldatei zu sichern und dann den neuen Text an die Originaldatei anzuhängen. Auf diese Weise können wir die Sicherungsdatei jederzeit wiederherstellen, wenn bei der Verwendung der Befehle ein Fehler auftritt. Z.B. Sie können einfach eine Datei namens „file1“ kopieren ' in eine andere Datei namens 'file1_bkp “ und fügen Sie dann den Text an das Original an, also „Datei1 ’.Text am Dateianfang mit Echo- und Cat-Befehlen hinzufügen
Wie Sie vielleicht wissen, gibt der echo-Befehl alles aus, was als Argument an die Ausgabe übergeben wird, während der cat-Befehl gibt den Inhalt einer Datei in die Ausgabe aus.
Wir können also den neu hinzuzufügenden Text an echo übergeben , übergeben Sie die Datei an eine Katze, kombinieren Sie und schreiben Sie die Ausgabe in die Datei. Dies kann wie folgt erfolgen:
$ x=`echo "New Text"; cat filename` $ echo "$x" > filename
Grundsätzlich kombinieren wir den neuen Text und den vorhandenen Inhalt der Datei und speichern den neuen Inhalt in einer Variablen. Dann geben wir einfach die Variable aus und leiten sie in dieselbe Datei um.
$ cat samplefile.txt $ x=`echo "Name: John"; cat samplefile.txt` $ cat samplefile.txt
Wie Sie oben sehen können, wurde der neue Text in einer neuen Zeile am Anfang der Datei hinzugefügt. Um den Text am Anfang der bestehenden ersten Zeile hinzuzufügen, verwenden Sie das -n
Argument des Echos.
$ x=`echo -n "New Text"; cat filename` $ echo "$x" > filenameBeachten Sie, dass obwohl Bash oder viele andere Shells haben keine Größenbeschränkung für Variablen, die Größe kann jedoch je nach Umgebung und Systemkonfiguration begrenzt sein. Daher kann es vorkommen, dass „samplefile.txt “ ist eine Datei, die eine riesige Menge an Daten enthält, und die Variable kann nicht alles speichern.
Fügen Sie mit dem Befehl sed Text zur ersten Zeile der Datei hinzu
gesendet (kurz für „Stream-Editor ‘) ist ein Befehlszeilen-Editor in Linux, der verwendet wird, um Operationen wie das Schreiben von Text in eine Datei, Suchen und Ersetzen usw. auszuführen.
gesendet ist ein komplexer Befehl mit vielen Optionen, um Dateien auf verschiedene Weise zu bearbeiten. Wir werden bestimmte Funktionen von sed verwenden, um Text am Anfang einer Datei hinzuzufügen.
Führen Sie Folgendes aus, um Text in einer neuen Zeile am Anfang einzufügen.
$ sed -i '1i New Text' filename
Das -i
argument sagt sed um die Datei selbst zu ändern. Ohne es, sed erstellt automatisch eine Kopie der Datei und führt alle Änderungen an der Kopie durch.
Die Zeichenfolge ‘1i Neuer Text’ bedeutet:‚Einfügen‘ die Zeichenfolge ‘Neuer Text’ am „1.“ Linie.
$ cat samplefile.txt $ sed -i '1i Introduction' samplefile.txt $ $ cat samplefile.txt
Auch hier wird der neue Inhalt am Anfang in einer neuen Zeile hinzugefügt. Um neuen Text in die vorhandene Zeile einzufügen, führen Sie Folgendes aus:
$ sed -i '1s/^/New Text/' filename
Grundsätzlich das Exponentensymbol (‘^’)
bedeutet eine Nullzeichenfolge. Der '1'
am Anfang bedeutet, dass sed sollte den Null-String am Anfang von Zeile 1 und den 's'
berücksichtigen ist ein sed Befehl, um eine Zeichenfolge zu ersetzen. Hier wird der Null-String durch „Neuer Text“ ersetzt ‘.
$ cat samplefile.txt $ sed -i '1s/^/Person/' samplefile.txt $ cat samplefile.txt
Schlussfolgerung
Wir haben zwei einfache, aber eingängige Methoden kennengelernt, um unter Linux neuen Text am Anfang einer Datei hinzuzufügen. Natürlich ist der offensichtliche Weg, dies zu tun, wenn es manuell gemacht werden soll, die Datei mit einem Dateieditor zu ändern. In einem Skript können die hier besprochenen Methoden jedoch verwendet werden.
Danke fürs Lesen und teilen Sie uns Ihre Gedanken in den Kommentaren unten mit!