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?