LINUX.ORG.RU

разделить текстовой файл на множество файлов

 ,


0

1

как разделить большой текстовой файл на определённое количество файлов пример: есть файл с расширением .txt ,в нём 50000 строк его нужно разделить на файлы чтоб в каждом фале было по 100 строк каждый. соответственно 500 файлов по 100 строк в каждом и пронумерованы 1.txt 2.txt 3.txt ...500.txt

как это реализовать?



Последнее исправление: qpt7 (всего исправлений: 1)

я у мамки python3-программист

#!/usr/bin/python3
a=open('./big_file.txt', 'r')       
file_counter=0
temp_file=open(str(file_counter)+".txt", 'w')
for str_num, string in enumerate(a.readlines()):
    if str_num%500==0 and str_num!=0:
        file_counter+=1
        temp_file.close()                     
        temp_file=open(str(file_counter)+".txt", 'w')
    temp_file.write(string)
temp_file.close()

-------------------------------------------
vodka@vodka-PC:/tmp$ cat ./big_file.txt | wc -l
50000
vodka@vodka-PC:/tmp$ cat 55.txt | wc -l
500
vodka@vodka-PC:/tmp$ ll [0-9]*.txt | wc -l
100
iljuase ★★★
()
Последнее исправление: iljuase (всего исправлений: 1)

Ну и чем вас не устраивает

$ split --lines=100 -d input.txt '' --additional-suffix=.txt -a 3

vodz ★★★★★
()
Ответ на: комментарий от futurama

да, спасибо, про split не знал. Буду знать теперь.

iljuase ★★★
()
Ответ на: комментарий от greenman

всем спасибо ,решено

этой командой из первой ссылки

for f in filename*.txt do split -d -a1 -l100 --additional-suffix=.txt «$f» «${f%.txt}-» done (только параметр -a1 надо заменить на -a2 ,чтоб не выдало ошибку > split: исчерпаны суффиксы для выходных файлов

можно и так как vodz дал вариант

$ split --lines=100 -d input.txt " --additional-suffix=.txt -a 3

qpt7
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.