Использование jj -u < my.json
представляется наиболее эффективным при использовании инструмента jj .
Однако однострочник python является довольно эффективным способом, если у вас уже есть python установлен и не нужен новый сторонний инструмент для такой задачи:
python -c 'import json, sys;json.dump(json.load(sys.stdin), sys.stdout)'
Perf benchmark
Вот быстрый скрипт для сравнения этих решений (тот, который говорит jj - безусловно, самый мощный):
bench () (
set -e
local file=$(mktemp)
trap "rm -f $file" ERR EXIT
cat <<JSON > $file
{
"foo": "lorem",
"bar": "ipsum"
}
JSON
time (
for i in {1..100}; do
"$@" < $file >& /dev/null
done
)
)
И результат на моей ма c (8 ГБ 2133 МГц LPDDR3, 2,3 ГГц Intel Core i5):
bench python -c 'import json, sys;json.dump(json.load(sys.stdin), sys.stdout)'
# 2.47s user 0.85s system 91% cpu 3.628 total
bench jq --compact-output
# 2.49s user 0.20s system 95% cpu 2.810 total
bench jj -p
# 0.17s user 0.22s system 77% cpu 0.498 total