Tutorial

(pre) fix json tool hjsonn

正しいjsonにしてくれるやつ

npm install hjson -g
hjson -c ./file.json | jq ".some"

的な感じで

jq rename file

echo "$(basename .\file.json | cut -d. -f 1)_$(hjson -c .\file.json | jq -r '.Model')"
find .\ -type f -iname "*\.txt" -print0 | xargs -0 -P1 -I% sh -c 'mv "%" "$(dirname %)/$(basename "%" | cut -d. -f 1)_$(hjson -c "%" | jq -r ".Model").json"'
find ./ -type f -iname "*\.txt" -print0 | xargs -0 -P1 -I% sh -c 'mv % "$(dirname %)/$(basename % | cut -d. -f 1)_$(hjson -c "%" | jq -r ".Model").json"'

jq(json tool)

jq Manual (development version)

jq usage examples

特定のキー要素取得
cat page_1.json | jq ".productDetails[]"

jsonの product で結合

jq -s '.[0].productDetails=([.[].productDetails]|flatten)|.[0]' *.json > outputFile.json

html 全結合

jq -s add *.json > merged.json

jq -s add *.json |save -r merged.json

https://cloudaffaire.com/faq/how-to-remove-duplicate-json-data-using-jq/

‘unique_by(.asin)‘

重複削除

は↓のような感じで cat .json | jq unie_by() > save.json

↓こうではなく jq .json unique_ ~

open -r book_index.json| jq '.[] | unique_by(.asin)' | save -r save.JSON 

↑productDetails にあるやつ book_index.json

sort

jq: Sorting JSON objects

jq ‘sort_by(.my_attribute, .2nd) | reverse

cat sortme.json | jq ‘sort_by(.review, .star) | reverse’ > sososorted.json

AIimg meta deta extract prompt

from txt jq ".[] | .image | .properties | .parameters" ./properties.txt

from imgmagick (windows)

magick convert .\metadata.png json: | jq ".[] | .image | .properties | .parameters"
find ./ -type f -regex ".*\.\(jpg\|png\|bmp\|tga\|jpeg\|webp\)" -print0 | xargs -0 -I% sh -c 'magick convert "%" json: | jq ".[] | .image | .properties | .parameters "'

if/else

targetImg=null && if [ $targetImg == 'null' ]; then echo "null!" ; else echo "exsist!" ; fi

if/else empty move & extract prompt with imgmagick (bash)

windows は先頭のmkdir -p mkdir -f

mkdir -p empty_meta && find ./ -type f -regex ".*\.\(jpg\|png\|bmp\|tga\|jpeg\|webp\)" -print0 | xargs -0 -I% sh -c 'targetImg=$(magick convert "%" json: | jq ".[] | .image | .properties | .parameters "); if [ "$targetImg" = "null" ]; then mv "%" ./empty_meta ; else echo "$targetImg" >> prompt.txt && echo --- >> prompt.txt && echo --- "%" --- >> prompt.txt && echo $(basename "%"); fi'

↓が対象にいない件

jq ".[] | .image | .properties | .Comment
jq ".[] | .image | .properties | .Description

↓大きくメタデータ全体をとる?

jq ".[] | .image | .properties

beautiflsoup_memo