ubuntuusers.de

gcal: Ausgabe formatieren

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Wolfgang.Klein

Anmeldungsdatum:
25. Juni 2007

Beiträge: 750

Hallo!

Ich benötige eine Liste mit gesetzlichen Feiertagen in DE, und gcal bietet dies:

gcal -N -qDE_NW --highlighting=no

gcal -N -qDE_NW --highlighting=no -X

Neujahr (DE_NW)                          + Mo,   1 Jan 2024 =  -88 Tage
Karfreitag (DE_NW)                       + Fr,  29 Mä 2024
Ostersonntag (DE_NW)                     + So,  31 Mä 2024 =   +2 Tage
Ostermontag (DE_NW)                      + Mo,   1 Apr 2024 =   +3 Tage
Tag der Arbeit (DE_NW)                   + Mi,   1 Mai 2024 =  +33 Tage
Christi Himmelfahrt (DE_NW)              + Do,   9 Mai 2024 =  +41 Tage
Pfingstsonntag (DE_NW)                   + So,  19 Mai 2024 =  +51 Tage
Pfingstmontag (DE_NW)                    + Mo,  20 Mai 2024 =  +52 Tage
Fronleichnam (DE_NW)                     + Do,  30 Mai 2024 =  +62 Tage
Tag der Deutschen Einheit (DE_NW)        + Do,   3 Okt 2024 = +188 Tage
Allerheiligen (DE_NW)                    + Fr,   1 Nov 2024 = +217 Tage
Erster Weihnachtstag (DE_NW)             + Mi,  25 Dez 2024 = +271 Tage
Zweiter Weihnachtstag (DE_NW)            + Do,  26 Dez 2024 = +272 Tage

Schön! Aber leider etwas zu ausführlich für meinen Zweck. Ich möchte die Ausgabe derart formatieren, daß nur das jeweilige Datum in der Form YYYY-MM-DD ausgegeben wird. Ich könnte zwar die Ausgabe von gcal mit einer Pipe nach grep oder awk übergeben und dann die übriggebliebenen Spalte 3-5 mit date wieder umformen, aber ich hoffe, es gibt eine elegantere Lösung.

perlicon

Anmeldungsdatum:
18. Dezember 2023

Beiträge: 54

Wolfgang.Klein schrieb:

Ich möchte die Ausgabe derart formatieren, daß nur das jeweilige Datum in der Form YYYY-MM-DD ausgegeben wird. Ich könnte zwar die Ausgabe von gcal mit einer Pipe nach grep oder awk übergeben und dann die übriggebliebenen Spalte 3-5 mit date wieder umformen, aber ich hoffe, es gibt eine elegantere Lösung.

Vermutlich geht es irgendwie auch nur mit gcal, aber auf die Schnelle wäre dies hier eine Lösung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ gcal -N -q DE_NW --highlighting=no -X --date-format='%1%>04*Y-%>02*M-%>02*D%2' | grep -oE "[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}"
2024-01-01
2024-03-29
2024-03-31
2024-04-01
2024-05-01
2024-05-09
2024-05-19
2024-05-20
2024-05-30
2024-10-03
2024-11-01
2024-12-25
2024-12-26

Die Formatierung innerhalb von --date-format ist etwas eigen (%>02*M statt %02M). Wo die (erforderlichen) Marker %1 und %2 hinfallen, sollte egal sein, solange die Hervorhebung abgeschaltet ist.

Wolfgang.Klein

(Themenstarter)

Anmeldungsdatum:
25. Juni 2007

Beiträge: 750

perlicon schrieb:

Die Formatierung innerhalb von --date-format ist etwas eigen

Ja, das kann man so sagen, darüber bin ich auch gestolpert. Aber Deine Lösung funktioniert. Danke! ☺

Antworten |