есть результат вывода некой команды, там несколько десятков строк.
мне надо получить любую случайную строку (вариант взять первую или последнюю не подходит, ибо там идут ip в порядке возрастания, поэтому мне надо именно случайную строку)
как в шелле получить случайную строчку из файла?
Модератор: Модераторы разделов
-
uptime
- Сообщения: 1661
- Статус: Drinker with computing problems
- ОС: kubuntu 8.04
Re: как в шелле получить случайную строчку из файла?
fortune
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
The answer is blowin' in the wind.
-
tull
- Сообщения: 484
-
кодировщик
- Сообщения: 974
- Статус: зарёган в пятницу 13
- ОС: Linux
-
--=Civil696=--
- Сообщения: 227
- ОС: Gentoo o_O
Re: как в шелле получить случайную строчку из файла?
если из файла, то есть глупый способ
Код: Выделить всё
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Не 1
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Ня 3
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Ня 3
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Ня 3
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Ню 2
navi ~ $ awk "BEGIN {N = 0; S=$RANDOM % $(cat file | wc -l)} { if (N == S) print $1; N++ }" file
Не 1
navi ~ $ cat file
Не 1
Ню 2
Ня 3НЕ ПАНИКУЙ © ^_~
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: как в шелле получить случайную строчку из файла?
из http://wooledge.org:8000/BashFAQ/026:
$ shuf -n 1 <file>
$ shuf -n 1 <file>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
tull
- Сообщения: 484
Re: как в шелле получить случайную строчку из файла?
Civil696,
пасибо, может кривоватый способ, но сгодится.
но есть проблемка, когда делаю из шела, все ок. вставляю в шеловский скрипт, получаю:
awk: syntax error at source line 1
context is
BEGIN { N = 0; S= >>> % <<< 9} { if (N == S) print ; N++ }
пасибо, может кривоватый способ, но сгодится.
но есть проблемка, когда делаю из шела, все ок. вставляю в шеловский скрипт, получаю:
awk: syntax error at source line 1
context is
BEGIN { N = 0; S= >>> % <<< 9} { if (N == S) print ; N++ }
нету у меня такого, видимо надо отдельно собирать (не хотелось бы использовать приблуды, котоырх нет в системе, потом будешь систему переставлять, и забудешь поставить)
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: как в шелле получить случайную строчку из файла?
приблуды можете смело засовывать в то место, где вы их нашли.
$ dpkg -S $(which shuf)
coreutils: /usr/bin/shuf
p.s. заодно прочитайте, что там в конце страницы написано по приведённой мною ссылке.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
tull
- Сообщения: 484
-
tull
- Сообщения: 484
Re: как в шелле получить случайную строчку из файла?
уф, сделал через gsort, спасибо за наВОДКУ 
-
uptime
- Сообщения: 1661
- Статус: Drinker with computing problems
- ОС: kubuntu 8.04
Re: как в шелле получить случайную строчку из файла?
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
The answer is blowin' in the wind.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: как в шелле получить случайную строчку из файла?
верю. верю даже, что отсутствие в вашей системе gnu/coreutils — проблема не ваша, а вашей системы.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
tull
- Сообщения: 484
Re: как в шелле получить случайную строчку из файла?
make search name=fortune| grep Portuptime писал(а): ↑14.05.2009 18:20Странно, что в портах нету.
http://opennet.ru/man.shtml?topic=fortune&russian=0
Port: zh-fortunetw-1.3
Port: wmfortune-0.241_2
Port: fortune-mod-bible-1.0_1
Port: fortune-mod-bofh-2.0_3
Port: fortune-mod-culmea-culmilor-2005.12.15
Port: fortune-mod-ferengi_rules_of_acquisition-2006.01.26
Port: fortune-mod-futurama-0.2_3
Port: fortuneit-1.99
Port: pl-fortunepl-0.0.20051022
Port: ru-fortune-bashorgru-20070808
Port: ru-fortuneru-0.8
Port: fortunelock-0.1.2
Port: pear-File_Fortune-1.0.0
Port: e17-splash-fortune-1.1_1
да фиг с ней. gsort решил все проблемы