Wie bekomme ich das bash date script, um einen Wochentag relativ zu einer nicht aktuellen Uhrzeit zurückzugeben?

8

Mit bash date kann ich erreichen, dass ein Wochentag relativ zur aktuellen Uhrzeit zurückgegeben wird.

%Vor%

Ich kann auch einen Tag relativ zu einem anderen Datum zurückgeben

%Vor%

Aber wie kann ich erreichen, dass der Wochentag relativ zu einer nicht aktuellen Uhrzeit zurückgegeben wird? Was ich machen möchte ist:

%Vor%

Wenn möglich, würde ich sogar in der Lage sein, Zeichenketten zu verketten, so dass ich auf relative Tage vom neuen Datum verweisen kann:

%Vor%

Obwohl diese Verkettung nicht so wichtig ist. Gibt es eine Möglichkeit für bash date einen Tag basierend auf dem relativen Wochentag zurückzugeben?

    
Roman 09.02.2012, 00:24
quelle

3 Antworten

9

Sie können eine kleine Tageszahl verwenden:

%Vor%

Ergebnis:

%Vor%     
glenn jackman 09.02.2012, 15:06
quelle
4

Nun mit bash kann es mit einer Schleife gemacht werden (z. B. das Datum, das Sie als Referenz in eine Variable in Unix% s Format verwenden wollen, als dekrementieren Sie es mit 24 * 60 * 60 prüfen, ob es Sonntag ist, und drucken Sie es aus wenn es wahr ist ...)

Oder Sie können etwas mit awk

einrichten %Vor%

Sie können es hier in Aktion sehen . Fast. Als ideone (was ich verehre) erlaubt es nicht, Befehlszeilenvariablen an gawk weiterzuleiten (oder ich war faul, es herauszufinden ;-)) Ich musste sie auch in den Block BEGIN einbetten.

Wenn Sie möchten, können Sie das oben genannte in ein datecalc.awk konvertieren (mit !#/usr/bin/gawk -f script, das ARGV[n] Variablen anstelle von -v benutzt), damit Sie es leicht von Ihren Shell Skripten aus aufrufen können.

>     
Zsolt Botykai 09.02.2012 09:57
quelle
2

Dies ist ziemlich einfach zu tun, wenn Sie libfaketime installiert haben.

%Vor%

Sie können es verketten, indem Sie FAKETIME dynamisch einstellen. Dies wird unordentlich, aber wird funktionieren:

%Vor%     
frankc 09.02.2012 17:09
quelle

Tags und Links