Tengo un volcado sql con 300mb que me da un error en la línea específica.

Pero esa línea es en la mitad del archivo. Cuál es el mejor enfoque?

head -n middleLine dump.sql > output?

O puedo la salida de la línea necesito?

  • ¿necesita lo que después de esta línea tan bien o qué es lo que está antes?
InformationsquelleAutor balsagoth | 2011-11-17

8 Comentarios

  1. 43

    Usted podría utilizar sed -n -e 123456p your.dump para imprimir línea 123456

    • genial!!! gracias. en realidad yo uso sed -n 123,130p my.dump a la línea de salida de la gama!
    • Tal vez sea sólo yo, pero me parece mal estilo para saltar la -e. Yo también estoy con regularidad citando comando sed después de -e, ya que a menudo contiene varios extraño 🙂 personajes… me gustaría escribir sed -n -e '123,130 p' my.dump.
  2. 23

    Si el archivo es largo, considere el uso de

    sed -n 'X{p;q}' file

    Donde X es el número de línea. Va a dejar de leer el archivo después de llegar a esa línea.

    • +1 para dejar de fumar después de encontrar la línea.
    • En algunos sistemas, como osx, necesita un extra de punto y coma: sed -n 'X{p;q;}' file
  3. 8

    Si sed es demasiado lento para su gusto, usted puede también utilizar

    cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
    • Si me quedo algo como: «comenzó=date +%s%3N ; for i in {1..500} ; do echo «$longlist» | sed -n 10p ; hecho ; detuve=date +%s%3N ; echo «scale=3 ; ($detuve – $iniciado)/1000″ | bc» y compara a la misma, pero con la cabeza -n 10 | tail-n 1 , la sed es más rápido en mi sistema.
  4. 3

    Esto también se puede hacer con Perl:

    perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql

    4444444 siendo el número de línea que se desea imprimir.

    • También, veo que quería una gama completa de líneas. Esto también se puede hacer con Perl: perl -wnl -e '1000 <= $. and $. <= 4444 and print;' FILENAME.sql Donde 1000 es la primera línea deseada en la gama y la 4444 es la última línea.
  5. -4

    Si usted sabe de una frase en esa línea, me gustaría utilizar grep. Si la frase es «errortext» uso:

    $ cat dump.sql | grep "errortext"
    • esto no es lo que me pida. Esta es la salida de todos los «errortext» en el archivo, y no la línea necesito de salida.
    • Más sobre cat | grep es inútil mientras grep puede manejar archivos. Consulte partmaps.org/era/unix/award.html

Dejar respuesta

Please enter your comment!
Please enter your name here