最近、bash 履歴のタイムスタンプをオンにしました。私は自分の履歴からさらに多くを得るために 3 つのオプションを使用しています。
HISTTIMEFORMAT="[%F %T %Z] "; shopt -s histappend; PROMPT_COMMAND='history -a'
私は、エポック時間を頭で解析することなく履歴を見たいと思うたびに HISTSIZE を途方もなく大きな数に設定するのではなく、bash スクリプトをまとめました。
awk '/^#[0-9]+$/{ match($0,/[0-9]+/);
t = strftime("[%F %T %Z] ",substr($0,RSTART,RLENGTH));
sub(/#[0-9]+/,t) } 1' ~/.bash_history | less
それは醜いですが、うまくいきます。単純化することもできると思いますが、それはこれを投稿する理由の二次的なものにすぎません。私がやりたいことは、各コマンドの先頭に対応するタイムスタンプを追加することです。これは で実行できると考えましたがsub(/#[0-9]+/,t)
、 を一致させようとすると、\n
まったく何もしません。改行を認識させるにはどうすればよいですか?
どんなポインタでも大歓迎です。