Liebst du es nicht einfach, wenn zwei Befehle jeweils eines tun, das du willst, aber auch nicht beide?
Das ist was cal
tut. Schöne Formatierung. Es fehlen allerdings die Wochenzahlen:
$ cal
January 2012
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Das ist was ncal
tut. Seltsame Formatierung, aber mit Wochennummern:
$ ncal -w
January 2012
Su 1 8 15 22 29
Mo 2 9 16 23 30
Tu 3 10 17 24 31
We 4 11 18 25
Th 5 12 19 26
Fr 6 13 20 27
Sa 7 14 21 28
1 2 3 4 5
Die Art der Ausgabe, die ich möchte, eigentlich eine Kreuzung zwischen cal
und ncal -w
:
$ cal --magik-calendar-week-option
January 2012
Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 6 7
2 8 9 10 11 12 13 14
3 15 16 17 18 19 20 21
4 22 23 24 25 26 27 28
5 29 30 31
bash
command-line
terminal
calendar
k0pernikus
quelle
quelle
gcal --starting-day=Monday --with-week-number
Passt mehr zu meinen Bedürfnissen, aber dieses Tool ist großartig.Dies hebt das heutige Datum hervor und kann jeden Monat
$1
in der folgenden Form anzeigen :YYYY-mm-dd
... Standardmäßig wird das heutige Datum verwendetEs ist so eingestellt, dass ISO-Wochennummern angezeigt werden und der erste Wochentag der Montag ist.
Hier ist die Anzeige dieses Monats (mit
20
Hervorhebung)quelle
08
und09
so interpretiert werden Oktal statt dezimal .. Es soll jetzt gut sein ...Sie können verwenden,
nl
um die Zeilen zu nummerieren (das ist der Zweck des Programms :). Aber Sie müssen die erste Woche im Monat irgendwo extrahieren. Es kann vonncal
selbst gemacht werden:Wir fügen dies als Parameter in
nl
die Option-v
(Startzeilennummer) ein und teilen es nur Zahlenzeilen mit Zahlen oder Leerzeichen mit.Das ist alles furchtbar zerbrechlich. Auf jeden Fall
cal
funktioniert es , wenn Sie keine erweiterten Optionen benötigen . Sie können es in eine Datei einfügen und ersetzen"$@"
wo ich es abgelegt habe2 2012
.EDIT: Aber das ist FALSCH! Mir ist gerade aufgefallen, dass die erste Januarwoche die Nummer 52 oder 53 haben kann! Wir müssen also entweder eine Ausnahme für Januar machen oder einfach alle Wochennummern aus extrahieren
ncal
und auf die Ausgabe von anwendencal
.Dies ist die Lösung, die ich ursprünglich dachte, aber ich dachte (fälschlicherweise), ich würde es mit vereinfachen
nl
. Dabei werdenpaste
Dateien nebeneinander zusammengeführt. Da es keine Datei gibt, müssen wir den Bashismus verwenden<(...)
. das wollte ich vermeiden.Unsere erste "Datei" ist eine Liste der Wochennummern mit zwei Leerzeilen am Anfang:
Der zweite ist nur die Ausgabe von
cal
. Alles in allem als Parameter fürpaste
:Viel chaotischer und unvereinbarer als der andere. En fin ...
quelle
Generieren Sie die Wochenfolge mit
ncal
und verwenden Sie diese,paste
um beide Ausgaben nebeneinander zu haben.Wenn Sie keine Tabulatoren als Trennzeichen haben möchten, fügen Sie einfach etwas wie hinzu
sed 's/\t/ /'
Bearbeiten : viel einfacher, ohne sich um Tabs kümmern zu müssen:
quelle
cal
und wirklich kombiniertncal
(andere Ansätze replizieren das Verhalten von entwedercal
oderncal
).Eine Möglichkeit, Perl zu verwenden (meine Ausgabesprache des
cal
Befehls ist Spanisch, aber ich hoffe, das Ergebnis weicht nicht von Englisch ab):Ausgabe:
Erläuterung:
quelle
cal 02 2012
? Es schien in meinem Test zu funktionieren.Ohne genügend Wiederholungen, um die Antwort von slm zu kommentieren , kann gcal unter Mac OS mit installiert werden
brew install gcal
.(Ich fand die Antwort zuerst hier, dann diese Antwort auf Frage anders, aber der Unix-Antwort fehlten alle Informationen, die ich brauchte, um auf dem Mac zu installieren.)
quelle
Hier ist meine Lösung, die im Code kürzer ist und auch für andere Daten als den aktuellen Monat funktioniert. Entschuldigung für die US-Leute, dies verwendet das ISO-Format, dh der erste Wochentag ist Montag. Dies erfolgt mit der Option -m für cal und der Option% V für date
quelle
Ich habe dieses Skript erstellt, um einen Dienstkalender für Teams zu erstellen. Es generiert einen Kalender mit Wochennummern und weist diesen Namen zu (einfach Round-Robin). Nachdem die Ausgabe gedruckt wurde, müssen Sie sie nur kopieren, um sie zu übertreffen und "Text in Spalte" zu schreiben. und wieder "text to column" in der ersten Spalte mit der Option "fixed" ausführen. Der Vorteil dieses Kalenders (im Vergleich zur horizontalen Ausrichtung) besteht darin, dass Sie den automatischen Filter (Alt + dff) verwenden und nur Ihre Wochen finden können.
Sorry, Code ein bisschen böse ... und keine Kommentare ... aber es funktioniert gut;)
quelle
Ich möchte nicht wirklich installieren
gcal
, und ich konnte es auf meinem System nicht richtig zum Laufen bringen. Ohne gcal ist die Antwort von funollet in der Tat die beste Lösung. Ich kann es nur ein klein wenig verändert , so dass es auch wie Konserven Formatierung Tag Highlight , Farben etc. , um die Verwendung vonscript
Befehl. Ich habe auch überflüssige Zeichen entfernt, so dass es als Alias geeignet ist:Oder durch
cal
eine neue Funktion ersetzen . Damit können Sie jedoch keine Dinge wie tuncal -3
. Sie erhalten die richtigen Wochen, aber sie sind nicht richtig ausgerichtet. Eine einfache, aber nicht vollständige Lösung besteht darin, zu überprüfen, ob dercal
Aufruf ohne Argumente erfolgt.quelle