Ich muss den Inhalt einer Textdatei kopieren und in eine andere Textdatei einfügen. Die erste Textdatei enthält 10 Datenzeilen. Diese müssen beispielsweise ab Zeile 5 in die zweite Textdatei kopiert werden. In der zweiten Textdatei sollten diese Daten also von Zeile 5 bis Zeile 14 geschrieben werden. Wie kann das geschehen? Danke im Voraus. Betrachten Sie mich als Neuling in Bezug auf Linux.
text-processing
G. Paschalis
quelle
quelle
(head -n 5 a.txt ; cat b.txt ; tail -n +6 a.txt) > c.txt
Das einfachste Werkzeug könnte hier sein
sed
. So fügen Sieb.txt
ina.txt
nach der fünften Zeile, könnten Sie schreiben:sed
Liest die als argument (a.txt
) angegebene Datei zeilenweise. Alle Zeilen werden in der Ausgabe so wiedergegeben, wie sie in der Eingabe erschienen sind, es sei denn, sie werden durch einen Befehl geändert.Dies
5
ist eine Adresse (Zeilennummer), an der der folgende Befehl ausgeführt werden soll. Der Befehl, den wir verwenden, istr
, der einen Dateinamen als Argument verwendet (hierb.txt
), ihn vollständig liest und in die Ausgabe nach der aktuellen Zeile einfügt.Wie oben angegeben,
sed
druckt diese Befehlszeile nur die Ausgabe auf das Terminal, ohne in Dateien zu schreiben. Sie können es entweder in eine neue Datei umleiten (keine der Eingabedateien!), Indem Sie die Ausgabeumleitung von Bash verwenden:Oder Sie können die äußere Eingabedatei direkt ändern,
a.txt
indem Siesed
den-i
Schalter (für "In-Place") verwenden. Wenn Sie es als schreiben-i.bak
, wird zuerst eine Sicherungskopie der ursprünglichen Eingabedatei mit dem Suffix erstellt.bak
:Ein Beispiel:
quelle
(Wiederverwenden des eleganten Beispiels von @ByteCommander :)
quelle