GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Memecah File Seperti Split To Stdout Untuk Piping Ke Perintah?

Saya memiliki .sql yang besar file penuh dengan SELECT pernyataan yang berisi data yang ingin saya masukkan ke dalam database SQL Server saya. Saya mencari bagaimana saya pada dasarnya dapat mengambil konten file, 100 baris sekaligus, dan meneruskannya ke perintah yang telah saya atur untuk melakukan sisanya.

Pada dasarnya, saya mencari split yang akan ditampilkan ke stdout , bukan file.

Saya juga menggunakan CygWin di Windows, jadi saya tidak memiliki akses ke rangkaian lengkap alat.

Jawaban yang Diterima:

Saya pikir cara termudah untuk melakukannya adalah:

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

Anda perlu menggunakan read untuk baris pertama di setiap bagian karena tampaknya tidak ada cara lain untuk berhenti ketika akhir file tercapai. Untuk informasi lebih lanjut lihat:

  • Periksa apakah pipa kosong dan jalankan perintah pada data jika tidak
  • Bagaimana cara menyalurkan output dari satu proses ke proses lain tetapi hanya dijalankan jika yang pertama memiliki output?

Linux
  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Cara Menggunakan Perintah SFTP untuk Transfer File Aman

  3. Bagaimana Cara Mengambil Sampel Secara Acak Dari Sebuah File?

  1. Buang Stdout Of A Command Selama T Detik?

  2. Cara membagi iso atau file menggunakan perintah 'split' di Linux

  3. Bagaimana cara menambahkan output ke file?

  1. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  2. lulus stdout sebagai nama file untuk utilitas baris perintah?

  3. Bagaimana cara membuat file yang dinamai seperti argumen baris perintah?