GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo dividir un archivo como Split to Stdout para canalizar a un comando?

Tengo un gran .sql archivo lleno de SELECT declaraciones que contienen datos que quiero insertar en mi base de datos de SQL Server. Estoy buscando cómo podría básicamente tomar el contenido del archivo, 100 líneas a la vez, y pasarlo a los comandos que configuré para hacer el resto.

Básicamente, estoy buscando split que saldrá a stdout , no archivos.

También uso CygWin en Windows, por lo que no tengo acceso al conjunto completo de herramientas.

Respuesta aceptada:

Creo que la forma más fácil de hacer esto es:

while IFS= read -r line; do
  { printf '%sn' "$line"; head -n 99; } |
  other_commands
done <database_file

Necesitas usar read para la primera línea de cada sección, ya que parece que no hay otra manera de detenerse cuando se llega al final del archivo. Para obtener más información, consulte:

  • Compruebe si la tubería está vacía y ejecute un comando en los datos si no lo está
  • ¿Cómo canalizar la salida de un proceso a otro pero ejecutar solo si el primero tiene salida?

Linux
  1. Cómo guardar la salida del comando en un archivo en Linux

  2. Cómo usar el comando SFTP para la transferencia segura de archivos

  3. Cómo dividir y combinar archivos desde la línea de comandos en Linux

  4. Cómo dividir iso o archivo usando el comando 'dividir' en Linux

  5. Cómo generar una suma de comprobación parcial de un archivo

Cómo usar el comando Truncar en Linux

Comando ls en Linux para listar archivos

Cómo mezclar líneas en un archivo en Linux

Cómo usar el comando lsof en Linux

Exa:un reemplazo moderno para el comando ls

Cómo usar el comando shred de Linux