Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Разбить файл TXT на несколько


Автор: TjRadenot 22.3.2008, 21:01
Есть текстовый файл (.TXT) с содержанием:


слово
ещеслово
многослов

и.т.д. более 1000000

Нужна софтина которая сможет разбить этот файл на множество других скажем по 100 строчек  ИЛИ размером 10 Кб

Существует подобное?

Автор: Akella 24.3.2008, 01:06
не уверен, но может быть тебе нужно поискать текстовые редакторы с поддержкой скриптов?

Автор: nickless 24.3.2008, 02:23
Любым скриптом, например на bash:
Код
#!/bin/bash
# split-them.sh

if [ -z "$1" ]; then
    echo "Need file name as parameter"
fi

L=100
M=$(wc -l "$1" | egrep -o '^[0-9]+')
N=$((M / L))
if [[ $((N*L)) -lt $M ]]; then
    tail -n$((M - N*L)) "$1" > "$1$((N+1))";
fi

for ((i=0; i<N; i++)); do
    head -n$((i*L + L)) "$1" | tail -n$L > "$1$i";
done


вызывать
Код

% ./split-them.sh file-name

Автор: TjRadenot 24.3.2008, 15:48
Akella, использую notepad++. Такой функции не нашёл. Может посоветуете другой редактор?

Спасибо.


nickless, с помощью чего мне выполнить этот скрипт?

Спасибо.

Автор: Akella 24.3.2008, 19:35
Цитата(nickless @  24.3.2008,  02:23 Найти цитируемый пост)
например на bash:

Если у тебя линукс, то ты должен понять

Автор: nickless 25.3.2008, 19:44
Цитата(TjRadenot @  24.3.2008,  13:48 Найти цитируемый пост)
nickless, с помощью чего мне выполнить этот скрипт?

Под виндой можно в cygwin, а вообще можно испильзовать как пример... программировать умеешь?

Автор: TjRadenot 25.3.2008, 23:30
Цитата(nickless @  25.3.2008,  19:44 Найти цитируемый пост)
Под виндой можно в cygwin, а вообще можно испильзовать как пример... программировать умеешь? 


я не прогер  smile  Готового софта не найти...  smile 

Автор: Akella 26.3.2008, 09:56
А так пробовал?
http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+%D0%BD%D0%B0+%D1%87%D0%B0%D1%81%D1%82%D0%B8

Добавлено через 1 минуту и 9 секунд
http://www.rol.ru/news/it/soft/01/08/06_001.htm

Добавлено через 14 минут и 18 секунд
ну и так далее по гуглу гуляешь, хотя возможно, что для своей специфической задачи тебе нужно писать отдельную утилитку

Автор: doomik 26.3.2008, 20:59
Тож написал скрипт только на перле smile

Код

#!/usr/bin/perl -w
# Скрипт читает заданый ему файл
# и разделаяет его на $lines_limit строк
# Использование: 
# perl textsplit.pl ИмяФайла Разделитель

use strict;
my @text = ();
my ($filename, $j, $i, $lines_limit, $element) = ("", 1, 0, 0, "");

$filename = $ARGV[0];
$lines_limit = $ARGV[1]; # лимит строк в каждом файле
if ( defined($lines_limit) == 0 ) {
    $lines_limit = 99; # по дефульту ставим 100
}

# открываем файл для чтения
open(FILE, "<$filename") || die $!; 
@text = <FILE>;
close(FILE); 

$filename =~ s/\./_0\./; # изменяем имя файла на file_0.txt

open(WRITE, ">$filename") || die $!;
foreach $element (@text) {
    $i++; # счётчик для $lines
    print WRITE $element;
    if ( $i == $lines_limit ) {
        $i = 0;
        $j++; # изменяем имя файла
        close(WRITE);
        $filename =~ s/_\d+\./_$j\./; # изменяем text_0.txt -> text_1.txt
        open(WRITE, ">$filename") || die $!;
    }
}


perl можно взять http://www.perl.org/

Автор: inside_pointer 1.4.2008, 16:42
Код

split -l 3 файл


разбивает файл на множество 3-х строчных файлов

но это в линуксе

Автор: nickless 1.4.2008, 17:06
Цитата(inside_pointer @  1.4.2008,  14:42 Найти цитируемый пост)
split

Век живи, век учись smile 

Автор: bytes 12.4.2008, 01:19
прог. не только для текстого файла


 

Автор: Данкинг 12.4.2008, 10:40
Вот я писал когда-то (вначале указываешь, на сколько строчек разбивать), разбивка начинается сразу после выбора файла.

Автор: TjRadenot 17.4.2008, 12:17
Цитата(Данкинг @  12.4.2008,  10:40 Найти цитируемый пост)
Вот я писал когда-то (вначале указываешь, на сколько строчек разбивать), разбивка начинается сразу после выбора файла. 


Только во всех созданных файлах появляется первая строчка. В принципе не проблема...

Данкинг, спасибо то что нужно  smile  

Автор: ksili 17.4.2008, 12:40
В Windows Commander есть Split Files... Combine Files... Только там не по словам, а по размеру разбивает. Всё очень просто. Я так уже фильм на двух флэшках уносил  smile 

Автор: lpetrov 14.10.2013, 10:57
[quote=Данкинг, 12.4.2008,  10:40, post1476511]Вот я писал когда-то (вначале указываешь, на сколько строчек разбивать), разбивка начинается сразу после выбора файла. 

Присоединённый файл ( Кол-во скачиваний: 184 ) 
  razbtxt.rar 176,48 Kb


ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!
Прога СУПЕР!!!!!!!!!!!!!!!

Автор: xop 23.2.2017, 10:26
Цитата(Данкинг @ 12.4.2008,  10:40)
Вот я писал когда-то (вначале указываешь, на сколько строчек разбивать), разбивка начинается сразу после выбора файла.

ох спасибо Данкинг.
реально выручила прога  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)