日付シード値の範囲内で行番号/「インデックス」を生成する

日付シード値の範囲内で行番号/「インデックス」を生成する

私は今日の単語(毎日ランダムに)を表示するbashスクリプトを作成しようとしています。辞書ファイルがあり、各行には単語とその定義があります。

date私はそれを使用して毎日のユニークな価値を得たいと思います。このように

today=$(date '+%Y%m%d') # will return 20160616 (for today)

これで、この値を使用して辞書ファイルから取得できる行番号を生成したいと思います。

私の辞書が86036長すぎてからの間の値に変換する必要があります$today186036

これを行う最良の方法は何ですか?

ベストアンサー1

少し異なる解決策:cronジョブを使用して、毎日テキストファイルの行を混在させます。その後、スクリプトは最初の行を選択します。

Cronタスク(sortランダムにデータを「並べ替える」ことができるタスクが必要-R):

0 0 * * * sort -R -o wotd_data.txt wotd_data.txt

またはcron理解している場合@daily(参照man 5 crontab):

@daily sort -R -o wotd_data.txt wotd_data.txt

スクリプト:

head -n 1 wotd_data.txt

wotd_data.txt明らかにフルパスが必要です。

おすすめ記事