Wie kopiere ich die ersten Zeilen einer riesigen Datei und füge mit einigen Linux-Befehlen am Ende eine Textzeile hinzu?

88

Wie kopiere ich die ersten Zeilen einer riesigen Datei und füge mit einigen Linux-Befehlen am Ende eine Textzeile hinzu?

biznez
quelle
1
In Bashhead -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv
Eric Leschinski

Antworten:

142

Der headBefehl kann die ersten nZeilen abrufen. Variationen sind:

head -7 file
head -n 7 file
head -7l file

Dadurch werden die ersten 7 Zeilen der aufgerufenen Datei angezeigt "file". Der zu verwendende Befehl hängt von Ihrer Version von ab head. Linux wird mit dem ersten funktionieren.

Verwenden Sie Folgendes, um Zeilen an das Ende derselben Datei anzuhängen:

echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file

oder:

echo 'first line to add
second line to add
third line to add' >>file

um es mit einem Schlag zu tun.

Wenn Sie also diese beiden Ideen miteinander verbinden und die ersten 10 Zeilen der input.txtDatei an output.txteine Zeile mit fünf "="Zeichen anhängen möchten , können Sie Folgendes verwenden:

( head -10 input.txt ; echo '=====' ) > output.txt

In diesem Fall führen wir beide Operationen in einer Sub-Shell aus, um die Ausgabestreams zu einem zu konsolidieren, der dann zum Erstellen oder Überschreiben der Ausgabedatei verwendet wird.

paxdiablo
quelle
21

Ich gehe davon aus, dass Sie versuchen, eine Zeile nach den ersten Zeilen einer Textdatei einzufügen.

head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt

Wenn Sie die restlichen Zeilen aus der Datei nicht wiederherstellen möchten, überspringen Sie einfach den Endteil.

DJ.
quelle
3
Mit Subshells können Sie dies tun, ohne die Ausgabedatei erneut zu (head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
öffnen
5

Erste Zeilen : man head.

Zeilen anhängen: Verwenden Sie den >>Operator (?) In Bash:

echo 'This goes at the end of the file' >> file
Strager
quelle