Zsh => fish に移行するときに Zsh の history も移行したいときに変換したメモ。
fish の history ファイルは ~/.local/share/fish/fish_history
にあるが、中を見ると基本的にコマンドとタイムスタンプを記録した YAML だったので Ruby のワンライナーで簡単に変換できた (パスの情報とかも含まれるようだったが無視した) 。
$ fc -lni 1 | ruby -rtime -r yaml -e 'puts STDIN.inject([]) { |a, l| a << { "cmd" => l[16..-1].strip, "when" => Time.parse(l[0..15]).to_i } }.to_yaml(options = { line_width: -1 })' > history-from-zsh.yml
これを Zsh で実行してできたファイルを ~/.local/share/fish/fish_history
にコピー (もしくは合体) させればいい。