• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[10.9 Mavericks] Hilfe bei Anpassung Geeklet-Script für Jahreskalender

MaChris

Osnabrücker Reinette
Registriert
25.07.06
Beiträge
990
Hallo zusammen,

ich habe aktuell ein Geektool-Geeklet, welches mir einen Jahreskalender auf dem Schreibtisch angezeigt.

Der Script-Code dafür lautet:

Code:
 cal -y | awk -v month="`date +%m`" -v day="`date +%e` " '{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[1;32m&\033[0m",t[i]);} print t[0],t[1],t[2];}'

Ergebnis siehe Bildbeispiel.

Da ich mit Unix-Shellscripts keinerlei Erfahrung habe, benötige ich einen Tipp, wie ich das Script anpassen muss, damit die Woche mit dem Montag und nicht mit dem Sonntag beginnt.

Vielen Dank.
 

Anhänge

  • Kalender.png
    Kalender.png
    283,2 KB · Aufrufe: 144

MaChris

Osnabrücker Reinette
Registriert
25.07.06
Beiträge
990
Verzeihung, wenn ich den Thread noch mal hoch schieb.
Niemand eine Idee?


Sent from my iPad using Apfeltalk mobile app
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Das liegt nicht am Skript, sondern an der Ausgabe von cal -y, da kannst du nichts ändern.
 

MaChris

Osnabrücker Reinette
Registriert
25.07.06
Beiträge
990
Danke für die Antwort.
Ich erlag nur der offensichtlich irrigen Annahme, dass man die Ausgabe von cal -y noch mit einem weiteren Befehl oder einem Parameter diesbezüglich hätte anpassen können.


Sent from my iPad using Apfeltalk mobile app
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Kann man, ist aber nicht ganz einfach. Hier mal ein Versuch:
Code:
cal -y | awk '{ if (substr($0,1,2) == " 1");
    do { prevline=$0;
        if (getline == 0) exit; 
        print " " substr(prevline,4,17) " " substr($0,1,3) substr(prevline,25,18) " " substr($0,23,3) substr(prevline,47,18) " " substr($0,45,3) " "; 
    } while (1);
}' | sed 's/So/   /g;s/Sa   /Sa So/g;' | awk -v month="$(date +%m)" -v day="$(date +%e)" '{m=int((NR-3)/8)*3+1;
    for (i=0;i<3;i++) {t[i]=substr($0,2+i*22,21) " ";
        if (m+i==month) sub(day,"\033[1;32m&\033[0m",t[i]);
    };
    print t[0],t[1],t[2];
}';
 
  • Like
Reaktionen: MaChris

MaChris

Osnabrücker Reinette
Registriert
25.07.06
Beiträge
990
Hey, Danke schön, werde ich später gleich mal auf meinem Mac ausprobieren.


Sent from my iPad using Apfeltalk mobile app
 

MaChris

Osnabrücker Reinette
Registriert
25.07.06
Beiträge
990
Cool (s. Bildanhang unten).

Vielen Dank dafür!!

Ähm, nur noch eine Frage - könnte man die Jahreszahl noch mittig / zentriert positionieren?
 

Anhänge

  • Jahreskalender.png
    Jahreskalender.png
    306,3 KB · Aufrufe: 136

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Quick'n'dirty:
Code:
date '+                                %Y';
cal -y | awk '{ getline; if (substr($0,1,2) == " 1");
    do { prevline=$0;
        if (getline == 0) exit;
        print " " substr(prevline,4,17) " " substr($0,1,3) substr(prevline,25,18) " " substr($0,23,3) substr(prevline,47,18) " " substr($0,45,3) " ";
    } while (1);
}' | sed 's/So/   /g;s/Sa   /Sa So/g;' | awk -v month="$(date +%m)" -v day="$(date +%e)" '{m=int((NR-3)/8)*3+1;
    for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,21) " ";
        if (m+i==month) sub(day,"\033[1;32m&\033[0m",t[i]);
    };
    print t[0],t[1],t[2];
}';
Hoffe das passt so einigermaßen, ansonsten kannst du ja in der ersten Zeile selbst ein paar Leerzeichen einfügen/entfernen.
 
  • Like
Reaktionen: MaChris