Pisahkan file menjadi beberapa file kecil, pisahkan dengan simbol baris baru


13

Apakah ada utilitas yang membagi file dengan simbol baris baru? misalnya jika file berisi baris berikut,

aa
bbb
cccc

Jika saya ingin membaginya menjadi 3 file, output yang diinginkan adalah:

aa, bbbDan cccc(dalam 3 file berbeda)

Saya sudah memeriksa splitperintah, itu hanya memotong file dengan ukuran file, bukan yang saya inginkan.

Jika saya tidak menulis utilitas sendiri, apakah ada alat standar untuk digunakan?


apa yang harus nama file?
Rahul Patil

Anda ingin membuat file dari setiap baris? Saya benar?
Rahul Patil

Jawaban:


14

Kecuali jika saya melewatkan sesuatu, splitapakah dibagi dengan baris jika Anda menggunakan -lsakelar:

   -l, --lines=NUMBER
          put NUMBER lines per output file

begitu

split -l 1 inputfile

harus melakukan apa yang Anda inginkan.


4
awk '{print > $0".txt" }'  inputfile

akan membuat satu file per baris unik di inputfile yang dinamai berdasarkan isi dari baris tersebut (dengan .txtekstensi). Tetapi berhati-hatilah bahwa ketika batas file terbuka bersamaan tercapai, beberapa awkimplementasi akan gagal.

Atau

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

Untuk memiliki file output bernomor.


Anda mungkin ingin menutup () file output setelah ditulis, jika tidak, Anda akan mencapai batas maksimum jumlah file terbuka dengan implementasi awk terbanyak.
Stéphane Chazelas

tidak sadar akan hal itu .. bisakah kamu melakukan itu untukku? terima kasih ..
Rahul Patil

3
A=0
while IFS= read -r LINE ; do
  printf '%s\n' "$LINE" > newfile$A
  (( A++ ))
done < "$INPUTFILE"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.