Ho un grande .sql
file pieno di SELECT
istruzioni che contengono dati che voglio inserire nel mio database di SQL Server. Sto cercando come potrei sostanzialmente prendere il contenuto del file, 100 righe alla volta, e passarlo ai comandi che ho impostato per fare il resto.
Fondamentalmente, sto cercando split
che verrà restituito a stdout
, non file.
Sto usando CygWin anche su Windows, quindi non ho accesso alla suite completa di strumenti.
Risposta accettata:
Penso che il modo più semplice per farlo sia:
while IFS= read -r line; do
{ printf '%sn' "$line"; head -n 99; } |
other_commands
done <database_file
Devi usare read
per la prima riga di ogni sezione poiché sembra che non ci sia altro modo per fermarsi quando viene raggiunta la fine del file. Per ulteriori informazioni, vedere:
- Verifica se la pipe è vuota ed esegui un comando sui dati se non lo sono
- Come reindirizzare l'output da un processo all'altro ma eseguirlo solo se il primo ha output?