質問: 年間隔で、ランダムな日付のシーケンスをどのように生成できますか? ここで必要なのは、年の範囲(1987年から2017年)を指定して6つの日付を生成するコマンドです。例えば:12/10/1987 30/04/1998 22/02/2014 17/08/2017 19/07/2011 14/05/2004 sed、gawkなどを使用して、それをどのように行うことができますか?
回答: date、shufおよびxargsの場合:開始日と終了日を「1970-01-01 00 000:00 utcからの秒数」に変換し、shufを使用してこの範囲の6つのランダムな値を出力します。この結果をxargsにパイプし、値を目的の日付形式に変換します。編集: 2017年の日付を出力に含める場合は、1年-1s(2017-12-31 23:59:59)から終了日まで。 shuf -iは、開始と終了を含む乱数を生成します。shuf -n6 -i$(date -d '1987-01-01' '+%s')-$(date -d '2017-01-01' '+%s')\ | xargs -i{} date -d '@{}' '+%d/%m/%y' 出力例:07/12/1988 22/04/2012 24/09/2012 27/08/2000 19/01/2008 21/10/1994