gpt4 book ai didi

json - 根据内容重命名 JSON 文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:57 26 4
gpt4 key购买 nike

我有大量名称格式为 date_geohash.json 的地理 json 文件,我必须将它们转换为 date_latitude-longotude.json 格式。例如,我需要将 2017-03-28_u13hhyn.json 转换为 2017-03-28_N52.76-E1.62.json。我正在尝试编写一个 bash 脚本来使用“重命名”和“jq”(json 查询)实用程序重命名这些 json 文件。使用 jq 我可以从 json 文件中提取纬度和经度。

jq '"\(.latitude)-\(.longitude).json"' 2017-03-28_u13hhyn.json

给我

“52.768471-1.623297.json"

但是,我不知道如何截断纬度和经度数字并重命名 json 文件。

最佳答案

最好将纬度和经度提取到变量中,然后使用 printf 处理成您想要的文件名格式。然后只需重命名该文件。这是一个基本示例:

#!/bin/bash

declare directory="/some/directory/path"
declare pattern="*_*.json"

cd ${directory}
for file in ${pattern}; do
prefix=${file%%_*} # Remove first underscore and everything following.
latitude=$(jq '.latitude' ${file})
longitude=$(jq '.longitude' ${file})
new_name=$(printf "%s_N%.2f-E%.2f.json" ${prefix} ${latitude} ${longitude})
mv ${file} ${new_name}
done;

注意 1:printf 不会截断数字,而是将它们四舍五入,这将提供更准确的结果。

注意 2:我已将“N”和“E”硬编码到文件名中,假设纬度和经度对于 S 和 W 为负。如果不是这种情况,还有一些工作要做需要,但原则保持不变。

关于json - 根据内容重命名 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58441271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com