Возможно, это должен быть комментарий - но у меня недостаточно «статуса», чтобы сделать это, вздох ... - поэтому я пытаюсь дать отправную точку для ответа!
«как мы попали в linux ...» мало что говорит человеку, работающему с AIX. Я попробовал кое-что простое: можно ли принять статус «ДРУГОЕ» в качестве ответа.
С сервера Linux, который я пробовал:
root@x064:[/data]cat /proc/1/status
▒▒/▒0▒0▒;▒
▒▒▒9▒E▒4▒œOTHER
root@x064:[/data]
root@x064:[/data/prj/gnu/less-481]strings /proc/1/status
OTHER
В AIX это выглядит похоже:
michael@x071:[/home/michael]cat /proc/1/status
dò0ò0 ~5!(FiË3ãú¤ÀOTHER
michael@x071:[/home/michael]strings /proc/1/status
!(Fi
Ë3ãú
OTHER
imho - строки! (Fi и Ë3ãú выглядят просто как строки, но это просто «нормальный статус, который отображается как строки»
] Для просмотра / proc вам следует обратить внимание на следующие команды:
michael@x071:[/home/michael]ls -l /usr/bin/proc*
-r-xr-xr-x 1 bin bin 8462 Jan 12 2015 /usr/bin/proccred
-r-xr-xr-x 1 bin bin 23820 Jan 12 2015 /usr/bin/procfiles
-r-xr-xr-x 1 bin bin 14852 Jan 12 2015 /usr/bin/procflags
-r-xr-xr-x 1 bin bin 11222 Jan 12 2015 /usr/bin/procldd
-r-xr-xr-x 1 bin bin 20884 Jan 12 2015 /usr/bin/procmap
-r-xr-xr-x 1 bin bin 8274 Jan 12 2015 /usr/bin/procrun
-r-xr-xr-x 1 bin bin 8974 Aug 06 2011 /usr/bin/procsig
-r-xr-xr-x 1 bin bin 24534 Jan 29 2015 /usr/bin/procstack
-r-xr-xr-x 1 bin bin 8502 Jan 12 2015 /usr/bin/procstop
-r-xr-xr-x 1 bin bin 34888 Jan 12 2015 /usr/bin/proctree
-r-xr-xr-x 1 bin bin 13612 Jan 12 2015 /usr/bin/procwait
-r-xr-xr-x 1 bin bin 9158 Jan 12 2015 /usr/bin/procwdx
jq
Los filtros de expresiones regulares (test
, match
,capture
)toman texto sin formato como entrada. Para aplicar una expresión regular a nombres clave, primero deberá convertir esos nombres clave en texto.
jq
proporciona una funciónto_entries
para eso:
cat jsonfile | jq 'to_entries'
salida:
[ { "key": "key11", "value": 1010 }, { "key": "key11_yes", "value": 13 }, { "key": "key11_no", "value": 14 }, { "key": "key12", "value": 12120 }, ... ]
Esto luego puede alimentar un filtro que extrae la clave, la prueba con una expresión regular, luego genera la entrada completa o la omite:
if (.key|test("key[0-9][0-9]$")) then ( {key:.key, value:.value } ) else empty end
La función de coincidencia from_entries
puede convertir las entradas restantes a su forma original, o with_entries
puede hacerlo todo en un solo paso:
cat jsonfile|jq 'with_entries(if (.key|test("key[0-9][0-9]$")) then ( {key:.key, value:.value } ) else empty end )'
El resultado son todos los pares de la entrada cuyas claves coincidieron con el patrón:
{
"key11": 1010,
"key12": 12120,
"key13": 12103
}