GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie könnte eine Folge von zufälligen Daten generiert werden, wenn ein Jahresintervall gegeben ist?

Was hier benötigt wird, ist ein Befehl, der sechs Datumsangaben für eine Reihe von Jahren (1987 bis 2017) generiert. Zum Beispiel:

12/10/1987
30/04/1998
22/02/2014
17/08/2017
19/07/2011
14/05/2004

Wie es gehen könnte, mit sed , gawk , etc?

Akzeptierte Antwort:

Sie können das Problem dahingehend umwandeln, dass Sie eine Zufallszahl zwischen einer Zahl, die das erste mögliche Datum darstellt, und einer Zahl, die das letztmögliche Datum darstellt (eigentlich diejenige direkt nach dem letztmöglichen), im Unix-Epochenformat generieren. Alles andere wird von Standard-Datumskonvertierungen erledigt. gawk hat eine bessere Zufallszahlenauflösung als bash (Float vs 15 Bit Integer), also verwende ich gawk . Beachten Sie, dass rand() Ergebnis N ist ein Float, so dass 0 <=N <1, deshalb wird das obere Limit nach unten erhöht, es ist ein Limit, das nicht gewürfelt werden kann. Es gibt einen optionalen 3. Parameter für die Anzahl der Ergebnisse.

#!/usr/bin/gawk -f
BEGIN {
    first=mktime(ARGV[1] " 01 01 00 00 00")
    last=mktime(ARGV[2]+1 " 01 01 00 00 00")
    if (ARGC == 4) { num=ARGV[3] } else { num=1 }
    ARGC=1
    range=last-first
    srand(sprintf("%d%06d", systime(), PROCINFO["pid"]))
    for (i=1; i <= num; i++) {
        print strftime("%d/%m/%Y", range*rand()+first)
    }
}   

Zum Beispiel:

./randomdate.gawk 1987 2017 6
26/04/1992
28/04/2010
21/04/2005
17/02/2010
06/10/2016
04/04/1998

Linux
  1. So zählen Sie die Anzahl der Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis

  2. So installieren Sie Pandom:einen echten Zufallszahlengenerator für Linux

  3. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  4. Anzahl der Dateien, die eine bestimmte Zeichenfolge enthalten?

  5. Wie drucke ich eine Nummer in Assembly NASM?

So überprüfen Sie den Verlauf der Linux-Befehle nach Datum

So überprüfen Sie die Versionsnummer und den Codenamen von Linux Mint

So pingen Sie eine Portnummer in Linux an

So pingen Sie eine bestimmte Portnummer an

Wie erstelle ich ein grafisches Diagramm einer Folge von Zahlen aus der Standardeingabe?

Gewusst wie:Einführung in die Programmierung – Objektorientierte Programmierung