сортировка текстового файла

Discussion in 'Безопасность и Анонимность' started by sboy20042, 14 May 2008.

  1. sboy20042

    sboy20042 Banned

    Joined:
    7 Jul 2007
    Messages:
    318
    Likes Received:
    376
    Reputations:
    128
    задача проста - вот у меня есть файл .txt в нем 100к строк
    как мне рандомизировать этот файл, то есть случайным образом поменять строки местами. под винду куча софта а как в никсах это сделать не представляю.


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

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    PHP:
    $file '';
    $file_new '';

    $data file($file);
    $data shuffle($data);
    file_put_contents($file_new,$data);
     
  3. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    http://www.linuxforums.org/forum/linux-programming-scripting/59111-how-do-you-randomly-shuffle-lines-text-file.html
     
    1 person likes this.
  4. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    А есть проги для сортировки? Например убрать все буквы с фаила оставить тока цифры, убрать все EnterЫ и т.д?
     
  5. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    awk/sed
     
    1 person likes this.
  6. Vid0k

    Vid0k Elder - Старейшина

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    на сях можно такую прогу можно написать за 5мин
     
  7. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    хотел написать на перл немного не получилось. С рассортировкой массива.
     
  8. [loy]

    [loy] Elder - Старейшина

    Joined:
    24 Mar 2006
    Messages:
    126
    Likes Received:
    23
    Reputations:
    16
    Конечно, есть проги, они находятся в пакете coreutils ...
    Выполняем:
    Code:
    root@desk[~]# sed -e 's/[^0-9]//g;' /etc/passwd | tr -d '\n' 
    
    Результат:
    Code:
    0011223447506070812913101411012100145025252727323233334242909099996060616162621000100
    
    Как видно, мы sed удаляем все символы, которые не цифры, потом tr удаляем интер.