ZSH履歴をJSONにエクスポートするには?

ZSH履歴をJSONにエクスポートするには?

タイムスタンプを含むZSHレコードをJSON出力にエクスポートしたいと思います。この目標をどのように達成できますか?

同様の出力を手動で解析する必要がありますかhistory -E

答え1

シェルで実行します(historyシェルに組み込まれているため)。

history -E 0 > history_log.txt

次に、次のスクリプトを実行します。

cat history_log.txt | awk '{$1=$2=$3=""}1' | cut -c 4- | jq --raw-input --slurp 'split("\n")' > a_temp.json
cat history_log.txt |awk '{$1=""; print $2, $3}'  | jq --raw-input --slurp 'split("\n")' > b_temp.json

jq 'map( { "command": . } )' a_temp.json > a.json
jq 'map( { "datetime": . } )' b_temp.json > b.json

jq -s 'transpose|map(add)' a.json b.json > output.json

上記の答えはawkとjqを使用しています。

関連情報