Necesito eliminar las primeras 42 líneas de un volcado SQL de 2GB.
Sé que puedo ver las primeras líneas usando:
head -n 44 dump.sql
Pero, ¿hay alguna forma de editarlos o eliminarlos?
Necesito eliminar las primeras 42 líneas de un volcado SQL de 2GB.
Sé que puedo ver las primeras líneas usando:
head -n 44 dump.sql
Pero, ¿hay alguna forma de editarlos o eliminarlos?
Respuestas:
Si solo desea ver las líneas de la 43 en adelante, puede usar
tail -n +43 dump.sql
El +signo es importante: sin él, tailimprimirá las últimas 43 líneas. Alternativamente con 'sed'
sed 1,42d dump.sql
Si realmente desea eliminar las primeras 42 líneas del archivo original, puede hacer que sed realice el cambio en el lugar con la -iopción
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFilecrea un archivo temporal sedXYZque consume muchos más gigabytes. ¿Hay un enfoque sin archivos temporales?
tail -n +43y head -n 44como se menciona en la pregunta?
Esto parece ser lo más fácil:
sed '1,42d' test.sql > test2.sql
Elimine las líneas 1-42 de test.sql y guárdelas como test2.sql
Puede usar Vim en modo Ex:
ex -s -c '1d42|x' dump.sql
1 pasar a la primera línea
42 seleccione 42 líneas
d Eliminar
x guardar y cerrar
Lo siento, no puedo darte el código actual en este momento. Sin embargo, intente mirar algo en la línea de
tail -n arcv(`wc -l`) -44
Lo que esto debería hacer (una vez formateado correctamente) es contar el número de líneas en el archivo (wc -l), restar 44 de él (-44) y luego imprimir todo comenzando con la línea 45 del archivo.
Espero que esto ayude y buena suerte.
wc -len el archivo, que lo procesa dos veces, mientras que sedo tailprocesar una sola vez.
Solo para agregar esto. Si está en una Mac, debe agregar la extensión de copia de seguridad. Respuesta de esta publicación .
sed -i '.bak' 1,42d dump.sql
Debido a las seddiscrepancias entre Linux y Mac, decidí usar el tail -n +43 dump.sql > dump.sqlformato.
tail. Encontré muchas veces algo nuevo que aprender de sus respuestas. Gracias.