Wskazówki
Usunięcie przedrostka z obiektu:
jq '.[]|(.file|= ltrimstr("../"))' compile_commands.json
Rozdziel .command
na odstępy, przypisz do .arguments
:
jq 'map ((.command | split(" ")) as $args | .arguments |= $args | del (.command))' compile_commands.json
Filtruj na obecnosc /SHARED/
w argumentach, potem weź arument ~ /MODULE/
jq '.[]|select(.arguments|any(test("SHARED"))) | .arguments|.[] | (select(test ("MODULE")))'`
Rekurencja + wybieranie poszczególnych wartości:
recurse(.nodes[])? | {id, app_id}`
Interpolacja łańcuchów:
rabin2 -j -S build/main | jq '.sections|sort_by(.size)|.[]|select(.name|test("debug")) | "\(.size) \(.name) " '
Usunęcie pewnych flag kompilatora z compile_commands.json
:
[.[]| .arguments |= [.[]|select(test("^-(W|f|m)")|not)]]
Przykład użycia with_entries
:
with_entries(select(.key != "capabilities"))
Generuj listę dla API REST:
seq 100 | jq -s '{lsit_of_strings : map(tostring)}'
FEATURED TAGS
assembly
aws
boostrap
bpftrace
c
c++
clang
cloud
cmake
compilers
cryptography
css
dbus
debian
elf
gcc
gcov
gdb
ghidra
git
glibc
gnu
gpg
gui
http
javascript
jq
kernel
ld.so
linux
llvm
make
nasm
networking
node
npm
opengl
pam
pl
postgres
python
qt
reversing
shell
sql
sqlite
ssh
sudo
sysadmin
systemd
twilio
uftrace
usb
vim
virtualization
winapi
wireshark
www
x86
xml
xpath
zsh