Möchte man bei der Bearbeitung von Textdateien, Textzeilen aus einer Datei nicht am Ende einer Datei anhängen, sondern die Textzeilen am Anfang einer Datei einfügen.
Oder der Inhalt einer Datei am Anfang einer anderen Datei hinzufügen, zeigt dieser Beitrag das Vorgehen wie folgt.
Textzeilen am Anfang einer Datei hinzufügen
Zum Filtern und Transformieren von Text können wir den sed – Stream-Editor verwenden, mit der In-Place Option (-i) und (i) zum Einfügen von Text.
$ sed -i '1 i\insert this before' file.txt
Auch hier macht der folgende Befehl dasselbe.
$ sed -i '1i insert this before' file.txt
Mehrere Textzeilen oben am Anfang in Datei einfügen.
$ sed -i '1i first line\nsecond line\nthird line' file.txt
Möchte man dass der Inhalt einer Datei oben in einer anderen Datei eingefügt wird, ist dieser Befehl auszuführen.
$ printf '%s\n' '0r file.1st' x | ex file.2nd
Dadurch wird file.2nd in ex geöffnet (Vim im Ex Mode), der vollständige Inhalt von file.1st oben eingelesen und der geänderte Puffer dann wieder in file.2nd gespeichert.
In diesem Beispiel hat die Datei file.1st den folgenden Inhalt.
first line
second line
third line
Die zweite Datei hat den nachstehenden Inhalt.
fourth line
fifth line
sixth line
Nach dem zusammenführen hat file.2nd diesen Inhalt.
first line
second line
third line
fourth line
fifth line
sixth line
Inhalt vor der ersten Zeile einfügen
Möchte man beim Bearbeiten von Textdateien in der Linux Shell, Textzeilen aus einer Datei nicht am Ende einer anderen Datei anhängen, was normalerweise der Fall ist. Zeige ich in diesem Betrag, wie man Textzeilen am Anfang einer anderen Datei einfügen, oder am Anfang anhängen kann.
Find mtime und atime ist der Befehl der Wahl, wenn nach Änderungsdatum von Dateien auf dem Filesystem gesucht wird. Das Command Line Tool find bietet zahlreiche Optionen wie iname, mtime und atime, auch für die Anwendung in Shell-Scripts. Der Befehl find --help gibt dabei Hilfe, und man find zeigt die ausführliche Manpage.
Dateien mit find iname mtime suchen
Im Filesystem besitzt jede Datei drei Zeitstempel, die geändert werden, wann bestimmte Operationen an der Datei durchgeführt werden:
[a] access (den Inhalt der Datei lesen) – atime
[b] den Status ändern (die Datei oder ihre Attribute ändern) – ctime
[modify] (den Inhalt der Datei ändern) – mtime
Wir können Dateien suchen, deren Zeitstempel innerhalb eines bestimmten Altersbereichs liegen, oder sie können mit anderen Zeitstempeln verglichen werden.
find datei mtime (modify)
Die -mtime gibt eine Liste der Dateien zurück, wenn auf die Datei zuletzt vor N*24 Stunden zugegriffen wurde. Um beispielsweise eine Datei des letzten Monats (N=30 Tagen) zu finden, kann die -mtime +30 verwendet werden.
-mtime +30 bedeutet Datei suchen, die vor 30 Tagen geändert wurde.
-mtime -30 bedeutet weniger als 30 Tage.
-mtime 30 ohne + oder – bedeutet genau 30 Tage.
Hier werden Textdateien gesucht, die vor 30 Tagen zuletzt geändert wurden, mit folgendem Befehl:
Beispiel: Dateien rekursiv mit chmod ab dem aktuellen Verzeichnis ändern, jedoch nicht die Verzeichnisse.
$ find . -type f -print0 | xargs -0 chmod 0644
und umgekehrt, alle Verzeichnisse rekursiv mit chmod ab dem aktuellen Verzeichnis ändern, aber nicht die Dateien.
$ find . -type d -print0 | xargs -0 chmod 0755
find datei daystart
Die Option -daystart wird verwendet, um die Zeit ab Beginn des aktuellen Tages statt vor 24 Stunden zu messen. Finde alle gestern geänderten C++ Dateien (*.CPP) mit folgendem Befehl:
Um Dateien im Verzeichnisbaum /home/user zu finden, die neuer sind als die Datei /mnt/user, führe folgendes aus:
$ find home/user -newer /mnt/user
Fazit
Mit dem Befehlszeilentool find lässt sich nach Dateien suchen mit find iname und mtime, um in der Linux Shell Dateien nach ihrem Änderungsdatum zu finden. Das Command Line Tool bietet mit den zahlreichen Optionen viele Möglichkeiten, diese auch in der Scriptverarbeitung nützlich sind.
UNBLOG verwendet Cookies, um Dein Online-Erlebnis zu verbessern. Mit "ACCEPT" gibst Du Deine Zustimmung zur Nutzung dieser Website und unseren Datenschutzbestimmungen, oder wähle Cookie settings.
Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern, während Sie durch die Website navigieren. Von diesen werden die Cookies, die nach Bedarf kategorisiert werden, in Ihrem Browser gespeichert, da sie für das Funktionieren der grundlegenden Funktionen der Website wesentlich sind. Wir verwenden auch Cookies von Drittanbietern, mit denen wir analysieren und verstehen können, wie Sie diese Website nutzen. Diese Cookies werden nur mit Ihrer Zustimmung in Ihrem Browser gespeichert. Sie haben auch die Möglichkeit, diese Cookies zu deaktivieren. Das Deaktivieren einiger dieser Cookies kann sich jedoch auf Ihre Browser-Erfahrung auswirken.
Notwendige Cookies sind unbedingt erforderlich, damit die Website ordnungsgemäß funktioniert. Diese Kategorie enthält nur Cookies, die grundlegende Funktionen und Sicherheitsmerkmale der Website gewährleisten. Diese Cookies speichern keine persönlichen Informationen.
Alle Cookies, die für die Funktion der Website möglicherweise nicht besonders erforderlich sind und speziell zur Erfassung personenbezogener Daten des Benutzers über Analysen, Anzeigen und andere eingebettete Inhalte verwendet werden, werden als nicht erforderliche Cookies bezeichnet. Es ist obligatorisch, die Zustimmung des Benutzers einzuholen, bevor diese Cookies auf Ihrer Website ausgeführt werden.