タイムスタンプを含む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を使用しています。