2016-06-22 9 views
2

Ich versuche, oh-my-zsh Verlaufsausgabe zu formatieren. Es scheint wie fc die Art und Weise, zu gehen, ist seit history alle Einstellungen ignoriert in HISTFILE, HISTSIZE oder HISTTIMEFORMAToh-my-zsh Verlaufsdatum Formatierung

Gibt es eine Möglichkeit, es zu formatieren, wie ich mit date

tun kann ich keine ordnungsgemäße Dokumentation finden über den fc Befehl online. Es gibt auch keine Manpages über fc.

was funktioniert fc -flE, um die Geschichte mit einer Art europäischem Format auszugeben.

Am Ende möchte ich herausfinden, wie viele Befehle ich heute und wann getippt habe.

Dort ist ein kleines Problem.

Zur Zeit habe ich dieses Setup:

alias today='date +"%d.%m.%Y"' Es gibt kein Format-Token, das mir führende Nullen entfernen läßt (ich will 6 statt 06)

Aber ich habe mehr Formatoptionen hier als mit der seltsame zsh history Befehl fc. Die Geschichte gibt die Termine als 2016.06.22 und today ist 2016.06.22 Daher kann ich nicht tun: fc -flE | grep $(today) | wc -l

Jedes Feedback wird sehr geschätzt!

Antwort

4

Kurze Antwort:

fc -li | grep $(date -I) 

Die Option -i weist fc zu Zeitstempel in ISO 8601 yyyy-mm-dd HH:MM Format zu drucken. Die Option -I weist das Datum an, das Datum im ISO 8601-Format (ohne Zeitangabe) auszugeben.


Was die Probleme aufgetreten Sie:

  1. Als fc ein builtin von zsh ist Ihnen seine Dokumentation im zshbuiltin manpage zu finden.

  2. Die Optionen -f (Druckzeitmarken in US MM/DD/YY hh:mm-Format) und -E (Druckzeitmarken im europäischen dd.mm.yyyy hh:mm Format) sich gegenseitig aus, mit -E Vorrang nehmen (lautlos, ohne Fehlermeldung). Wenn Sie das europäische Format nicht wünschen, lassen Sie die Option -E fallen.

  3. Sie können das Zeitstempelformat für fc mit der Option -t fmt explizit angeben.Im Folgenden wird Zeitstempel wie 06/22/2016 - 23:07:09 (beachten Sie das Zero-Padding) drucken:

    fc -lt '%m/%d/%Y - %H:%M:%S' 
    

    Dies verwendet die strftime Funktion (weitere Informationen mit man 3 strftime) den Zeitstempel zu formatieren. Die Formatoptionen sind also nahezu identisch mit denen, die Sie mit date verwenden können.

  4. Sie können date sagen, ein Feld nicht mit dem - Flag zu füllen. Zum Beispiel 6/22/16:

    date +%-m/%-d/%y 
    

    Dieses Flag funktioniert auch für fc.


Etwas längere Antwort:

Wenn Sie ein anderes Zeitstempel-Format als ISO 8601 bevorzugen, können Sie nur eine geben Sie eine Verwendung es sowohl für date und fc. Zum Beispiel: nicht gepolstert US-Datumsformat und 0 gepolsterte Uhrzeit mit Sekunden:

TS_DATE="%-m/%-d/%y" 
TS_TIME="%H:%M:%S" 
fc -lt "$TS_DATE $TS_TIME" | grep $(date +$TS_DATE) 
+0

Vielen Dank! Es war wirklich schwierig, Informationen über diesen Befehl zu finden. Danke für Ihre Zeit und Mühe. Ich schätze es wirklich :) –

+0

Ich benutze oh-my-zsh seit ein paar Jahren und ich brauchte die neueste [.zshrc-Vorlage] (https://raw.githubusercontent.com/robbyrussell/oh-my) -zsh/master/templates/zshrc.sh-template), um die 'HIST_STAMPS'-Option zu erhalten. Vielleicht haben andere Leute das gleiche Problem. – the0ther