PDA

Просмотр полной версии : сортировка текстового файла


sboy20042
14.05.2008, 01:01
задача проста - вот у меня есть файл .txt в нем 100к строк
как мне рандомизировать этот файл, то есть случайным образом поменять строки местами. под винду куча софта а как в никсах это сделать не представляю.


спасибо заранее.

gibson
14.05.2008, 07:42
$file = '';
$file_new = '';

$data = file($file);
$data = shuffle($data);
file_put_contents($file_new,$data);

Deem3n®
14.05.2008, 09:11
http://www.linuxforums.org/forum/linux-programming-scripting/59111-how-do-you-randomly-shuffle-lines-text-file.html

НTL
14.05.2008, 09:18
А есть проги для сортировки? Например убрать все буквы с фаила оставить тока цифры, убрать все EnterЫ и т.д?

Deem3n®
14.05.2008, 22:55
А есть проги для сортировки? Например убрать все буквы с фаила оставить тока цифры, убрать все EnterЫ и т.д?awk/sed

Vid0k
14.05.2008, 23:26
на сях можно такую прогу можно написать за 5мин

procedure
15.05.2008, 04:53
хотел написать на перл немного не получилось. С рассортировкой массива.

[loy]
16.05.2008, 04:47
Конечно, есть проги, они находятся в пакете coreutils ...

А есть проги для сортировки? Например убрать все буквы с фаила оставить тока цифры, убрать все EnterЫ


Выполняем:

root@desk[~]# sed -e 's/[^0-9]//g;' /etc/passwd | tr -d '\n'

Результат:

00112234475060708129131014110121001450252527273232 33334242909099996060616162621000100


Как видно, мы sed удаляем все символы, которые не цифры, потом tr удаляем интер.