Dividir JSON en varios archivos JQ
Soy nuevo en esto y estoy tratando de dividir un JSON en varios archivos según su contenido. El “nombre” del grupo objetivo es “root_rgs” y me gustaría tenerlo en archivos diferentes cada uno.
{
"root_rgs": [
"PROM_FD_ARCNA",
"PROM_JOB_ICMP"
],
"targets": [
"HCC02155",
"HCC09350",
"HCC09321",
"HCCEFACTORYWWW",
"HCC9723"
]
}
{
"root_rgs": [
"PROM_FD_ARCNA",
"PROM_JOB_WIN"
],
"targets": [
"LABTNSARWID236",
"LABTNSARWID692",
"VM00006"
]
}
{
"root_rgs": [
"PROM_FD_MTZ",
"PROM_JOB_ICMP"
],
"targets": [
"TEIARWIN205",
"TEIARWDB150",
"TEIARWCXWA212"
]
}
¿Es posible generar algo como esto?:
ARCNA_ICMP.json
{
TARGETS:
"HCC02155",
"HCC09350",
"HCC09321",
"HCCEFACTORYWWW",
"HCC9723"
}
ARCNA_WIN.json
{
TARGETS:
"LABTNSARWID236",
"LABTNSARWID692",
"VM00006"
}
Y así sucesivamente…
Espero que sea claro, gracias a todos.
davy.ai
Como experto en TI especializado en json, archivo, jq y partición, es posible dividir un archivo JSON en diferentes archivos según su contenido. Se puede utilizar la herramienta de línea de comandos
jq
para filtrar los datos y guardar los resultados en archivos separados.Suponiendo que el archivo JSON de entrada se llama
input.json
y deseas dividirlo según los valores de la claveroot_rgs
, puedes usar el siguiente comando:Este comando filtra el archivo JSON de entrada utilizando el filtro JQ
.[]
para obtener cada objeto de nivel superior en el archivo. Luego lee cada objeto en el bucle while y extrae el nombre y los objetivos usando JQ. Finalmente, guarda los objetivos en un archivo con un nombre basado en el nombre de la clave root_rgs en cada objeto JSON.Por ejemplo, utilizando el JSON de entrada que proporcionaste, este comando crearía los siguientes archivos:
PROM_FD_ARCNA_targets.json
PROM_FD_MTZ_targets.json
PROM_JOB_ICMP_targets.json
PROM_JOB_WIN_targets.json
Puedes modificar el comando para ajustar el formato del archivo de salida o el nombre según tus requisitos.