Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: скрипт - генератор случайных значений  (Прочитано 1749 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zunker

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Возникла необходимость записывать в определенное место файла случайную последовательность букв фиксированной длины. Возможно ли это реализовать в sh скрипте например? Как вставить или заменить строки понятно, а вот как быть с генерацией значений и передачей их дальше ума не приложу, поможете?

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: скрипт - генератор случайных значений
« Ответ #1 : 23 Мая 2009, 11:40:20 »
Например, так:
#!/bin/sh
text=''
while [ $(echo $text | wc -c) != '6' ]
do
text=$text$(head -c1 /dev/urandom | grep -a '[a-zA-Z]')
done
echo $text
На выходе - пять латинских букв. Время генерации на современном компе в среднем пол секунды для пяти букв, растёт линейно.

Оффлайн zunker

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: скрипт - генератор случайных значений
« Ответ #2 : 23 Мая 2009, 12:02:35 »
>>Frank
годно )  я генерировал так </dev/urandom tr -dc a-z_ | head -c8 ; echoпросто латиница в нижнем регистре, echo выводит в терминал в данном случае 8-ми значный рандомный текст,
с этим проблем не возникает. мне нужно передать получившееся значение дальше. То есть имеется
файл. со строкой, содержащей некое значение *value= blahblah* в итоге нужно получить *value= сгенереное значение*
что то типа ~ sed 's/value= любое значение/value= сгенереное значение/g' ~/путь к файлуя так понимаю, ковырять нужно в сторону sed, но мои навыки в этой области унылы более чем полностью (
« Последнее редактирование: 23 Мая 2009, 12:14:35 от zunker »

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: скрипт - генератор случайных значений
« Ответ #3 : 23 Мая 2009, 12:30:18 »
>>Frank
годно )  я генерировал так </dev/urandom tr -dc a-z_ | head -c8 ; echoпросто латиница в нижнем регистре, echo выводит в терминал в данном случае 8-ми значный рандомный текст,
с этим проблем не возникает. мне нужно передать получившееся значение дальше. То есть имеется
файл. со строкой, содержащей некое значение *value= blahblah* в итоге нужно получить *value= сгенереное значение*
что то типа ~ sed 's/value= любое значение/value= сгенереное значение/g' ~/путь к файлуя так понимаю, ковырять нужно в сторону sed, но мои навыки в этой области унылы более чем полностью (

эм.. так что ли?..
#!/bin/bash
value=$(cat /dev/urandom | tr -dc a-z_ | head -c8)
echo $value
« Последнее редактирование: 23 Мая 2009, 12:31:58 от Nebulosa »

Оффлайн zunker

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: скрипт - генератор случайных значений
« Ответ #4 : 23 Мая 2009, 13:42:21 »
Все получилось. спасибо  ;D
#!/bin/sh

value=$(cat /dev/urandom | tr -dc a-z_ | head -c8)
echo $value
sed -i 's/^штотатам.*/штотатам = '$value'/' ~/путь к файлу

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: скрипт - генератор случайных значений
« Ответ #5 : 23 Мая 2009, 15:05:09 »
"echo $value" - зачем тебе вывод переменной на экран? Всё вообще можно в одну строчку сделать без переменных:
sed -i "s/^value=.*/value=`cat /dev/urandom | tr -dc a-z_ | head -c8`/g" ~/путь к файлу

Оффлайн zunker

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: скрипт - генератор случайных значений
« Ответ #6 : 23 Мая 2009, 19:49:23 »
Цитировать
зачем тебе вывод переменной на экран?
и правда  :2funny:   последний вариант без переменных уже оформил в дело, хотя в одном месте
все-таки без них не обошлось, проще раз объявить несколько переменных, чем потом в сотне строк пробивать
блок с генераторами.
Еще раз спасибо )

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.