91 votes

Supprimer les n premières lignes d'un grand fichier texte

Je dois supprimer les 42 premières lignes d'un fichier SQL de 2 Go.

Je sais que je peux voir les premières lignes en utilisant :

head -n 44 dump.sql

Mais y a-t-il un moyen de les modifier ou de les supprimer ?

136voto

steeldriver Points 118154

Si vous voulez juste voir les lignes à partir du 43ème que vous pouvez utiliser

tail -n +43 dump.sql

El + Le signe est important - sans lui, tail imprimera le dernier 43 lignes à la place. Ou bien avec 'sed'.

sed 1,42d dump.sql

Si vous voulez vraiment supprimer les 42 premières lignes du fichier d'origine, vous pouvez faire en sorte que sed effectue le changement en place avec la commande -i option

sed -i 1,42d dump.sql

27voto

Kohjah Breese Points 2461

Cela semble être le plus facile :

sed '1,42d' test.sql > test2.sql

Supprimez les lignes 1-42 de test.sql et enregistrez sous test2.sql

11voto

ptantiku Points 199

Essayez ceci,

tail -n +43 dump.sql > dump_new.sql

7voto

Zombo Points 1663

Vous pouvez utiliser Vim en mode Ex :

ex -s -c '1d42|x' dump.sql
  1. 1 passer à la première ligne

  2. 42 sélectionnez 42 lignes

  3. d supprimer

  4. x sauvegarder et fermer

2voto

Akash Agarwal Points 260

En raison de sed entre Linux et Mac, je me suis résolu à utiliser tail -n +43 dump.sql > new.sql format.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X