2009-04-29 13 views
15

問題:は、私はZshの履歴のタイムスタンプを読み取ることができません

setopt EXTENDED_HISTORY 
HISTFILE=~/.history 

中を持っている場合、〜/ .history

: 1241036336:0;vim ~/.zshrc 
: 1241036379:0;vim ~/bin/HideTopBar 
: 1241036421:0;ls 
: 1241036430:0;cat ~/.history 

で次のようにタイムスタンプ

1241036430 

を理解します.zshrc。

どのようにタイムスタンプを読むことができますか?

+0

私は第2の整数(常に0に見える)について何か不思議です。この数字は何を表していますか? –

答えて

1

この単純なutilは、タイムスタンプのファイルを読み込むための金である:

#!/usr/bin/perl 
# http://perl.plover.com/classes/mybin/samples/source/localtime 

if ($ARGV[0] eq '-f') { 
    *show_localtime = \&show_localtime_list; 
    shift; 
} 

if (@ARGV) { 
    for (@ARGV) { 
    print show_localtime($_), "\n"; 
    } 
} else { 
    while (<>) { 
    s/^(\d+)/show_localtime($1)/e; 
    print; 
    } 
} 


sub show_localtime { 
    my $t = shift; 
    scalar localtime $t; 
} 

sub show_localtime_list { 
    my $t = shift; 
    my @a = localtime $t; 
    "@a\n" 
} 

これは多くのケースを処理し、秒単位でのタイムスタンプとミニのタイムスタンプの両方を理解しているようです。秒など。

$ localtime < ~/.histfile 
<snip> 
: Sat Sep 17 05:55:17 2016:0;cat localtime 
+0

この機能は、Zshの履歴ファイルだけでなく、他の履歴ファイルにも使用できますか? –

+0

うん、それは通常動作します。それは単に数字の最初の文字列を探し、それを人間が読める日付に変換します。 – olejorgenb

18

お試しhistory -dそれとも、すべてのさまざまなオプションを取得するためにhistory -とプレスコントロール-Dを入力します。

% history - 
-D -- print elapsed times 
-E -- dd.mm.yyyy format time-stamps 
-d -- print time-stamps 
-f -- mm/dd/yyyy format time-stamps 
-i -- yyyy-mm-dd format time-stamps 
-m -- treat first argument as a pattern 
-n -- suppress line numbers 
-r -- reverse order of the commands 
+0

説明ありがとうございます! –

+0

ctrl-Dがすべてのオプションを与える新しいことを学びました。ありがとうございます!! – Buchi

+2

私のために働いていない、どのように私はOS Xでこれを行うのですか? – juanpastas

12

あなたはan answer on the zsh mailing listから取られたこのワンライナーを使用して、人間が読めるタイムスタンプで全体履歴を表示することができます

​​

読みやすくするために、出力をポケットベル(例えばless)に配管することをお勧めします。

+0

+1をクレジットするための+1 ... :) –

2

Adendum:あなたにも保存された履歴ファイルで見つかったタイムスタンプを変換するためにhistoryコマンド自体を使用することができます。

オプションをhistoryコマンドにニコラス・ライリーによって説明されるように保存された履歴ファイルに全く同じように適用されますので、history -d < historyfile (または他のオプションのどれか)はタイムスタンプをうまく変換します。

これは、複数のヒストリファイルを使用している場合に便利です - 同じシステム上で並列に実行されているシェルからヒストリが混ざらないように、ヒストリファイルをptyごとに1つ保存するように設定しました。ウィンドウ/スクリーン/ ...は特定のタスクに特有なので、通常の使用から出てくる履歴はテーマのようなものになります)。

+1

'history -d olejorgenb

関連する問題