Ich muss die ersten 42 Zeilen eines 2-GB-SQL-Dumps entfernen.
Ich weiß, dass ich die ersten Zeilen anzeigen kann mit:
head -n 44 dump.sql
Aber gibt es trotzdem die Möglichkeit, sie zu bearbeiten oder zu entfernen?
command-line
Kohjah Breese
quelle
quelle
tail
. Ich habe viele Male etwas Neues gefunden, um aus Ihren Antworten zu lernen. Vielen Dank.sed -i 1,50000000d 17GigFile
Erstellt eine temporäre DateisedXYZ
, die viel mehr Gigabyte verbraucht. Gibt es einen Ansatz ohne temporäre Dateien?tail -n +43
undhead -n 44
wie in der Frage erwähnt?Dies scheint am einfachsten zu sein:
Entfernen Sie die Zeilen 1-42 aus test.sql und speichern Sie sie als test2.sql
quelle
Versuche dies,
tail -n +43 dump.sql > dump_new.sql
quelle
Sie können Vim im Ex-Modus verwenden:
1
in die erste Zeile gehen42
Wähle 42 Zeilen ausd
löschenx
speichern und schließenquelle
Entschuldigung, ich kann Ihnen momentan keinen aktuellen Code geben. Versuchen Sie jedoch, etwas in der Richtung von zu betrachten
Was dies tun sollte (einmal richtig formatiert), ist die Anzahl der Zeilen in der Datei zu zählen (wc -l), 44 davon zu subtrahieren (-44) und dann alles beginnend mit der 45. Zeile in der Datei auszudrucken.
Hoffe das hilft und viel Glück.
quelle
wc -l
auf der Datei, können Sie sie zweimal verarbeiten, währendsed
odertail
erst einmal verarbeiten.Versuche dies,
oder,
quelle
Nur um dies hinzuzufügen. Wenn Sie einen Mac verwenden, müssen Sie die Backup-Erweiterung hinzufügen. Antwort von diesem Beitrag .
quelle
Aufgrund von
sed
Unstimmigkeiten zwischen Linux und Mac habe ich beschlossen, dastail -n +43 dump.sql > dump.sql
Format zu verwenden .quelle