Random string
Дорбое время суток!
Подскажите пожалуйста, как выбрать из большого текстового файла
отдельную строчку. Необоходимо, чтобы строка выбиралась случаным
образом. Нужно использовать sh или bash скрипт.
За последние 60 дней ни разу не выходила
Сайт листа:
http://www.linuxrsp.ru
Открыт:
25-07-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.discuss-list@subscribe.ru
Адрес
модератора: comp.soft.linux.discuss-owner@subscribe.ru
Дорбое время суток!
Подскажите пожалуйста, как выбрать из большого текстового файла
отдельную строчку. Необоходимо, чтобы строка выбиралась случаным
образом. Нужно использовать sh или bash скрипт.
В сообщении от 1103979137 секунд после начала Эпохи Unix Вы написали:
Хм... А как присвоить значение переменной $RANDOM?
#!/bin/bash
filename="/some/big/text/file"
l=`awk 'END {srand();print int(rand()*NR)+1}' $filename`
awk "NR==$l {print}" $filename
Konstantin Korikov wrote:
Это уже bash сделал.
Andrew Gusev
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14622; Возраст листа: 519; Участников: 1287
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/287126
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
В сообщении от 1104012069 секунд после начала Эпохи Unix Вы написали:
Не знал про такую возможность :). Вот только команда не учитывает
количество строк в файле, и для маленьких файлов, в подавляющем
большинстве, будет выдана последняя строка. А для файлов с количеством
строк больше 32767, остальные строки вообще никогда не выведутся.
On Sun, 26 Dec 2004 22:06:28 +0200
Konstantin Korikov <lostcl***@u*****.net> wrote:
Тоже не знал об этой возможности. Но тут можно "нормировать" $RANDOM. Т.
е. умножить на длину файла и разделить на max возможное значение $RANDOM
(хотя надо его сначала выяснить).
i386-asplinux-linux-gnu)
Доброе время суток!
Tue, 28 Dec 2004 03:33:04 +0300 Анатолий писал:
Тоже вариант.
--
С уважением tillias.
Тит Ливий: "Чем больше счастье, тем меньше следует ему доверяться"
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14663; Возраст листа: 521; Участников: 1290
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/288015
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
On Sat, 25 Dec 2004 14:10:32 +0300
"H.R.Giger -=dead tillias_TT=-" <tilli***@n*****.ru> wrote:
Если не писать ничего специально для этого, то можно использовать
fortune. Только вот файл придется специально готовить (утилитами из
fortune). Не знаю, подходит ли Вам этот вариант.
i386-asplinux-linux-gnu)
Доброе время суток!
Мне нужно было для вставки девизов и для выбора случайного эл. адреса из большой
базы. Кстати разрешите пару вопросов по поводу awk:
1.'awk END { текст программы } $filename'. Для чего здесь нужен END?
2. что делает блок awk '...' $filename?
--
С уважением tillias.
А.Аселен: Самые невыносимые люди - это мужчины, считающие себя гениальными, и
женщины, считающие себя неотразимыми.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14642; Возраст листа: 520; Участников: 1291
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/287513
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
Hi Терновых Илья, you wrote:
1. Шаблон END выполняется после обработки всех входных строк.
2. Выполняет программу awk ('...') по отношению к файлу ($filename).
В сообщении от 1104159683 секунд после начала Эпохи Unix Вы написали:
END - это шаблон (pattern) который совпадает с концом входного потока.
Действия для данного шаблона будут выполнятся после обработки всех
входных данных.
Запуск интерпретатора awk с текстом программы `...' и $filename в
качестве файла входных данных.
H.R.Giger -=dead tillias_TT=- wrote:
head my_file -n $RANDOM | tail -n 1
Andrew Gusev
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14579; Возраст листа: 518; Участников: 1286
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/286724
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback