Alat, bahasa, dan dekoder untuk bekerja dengan data biner.
TLDR: bertujuan untuk menjadi jq, hexdump, dd dan gdb untuk file yang digabungkan menjadi satu.
Penggunaan dasar adalah fq . file
, fq d file
atau fq 'some query' file ...
.
Untuk detailnya lihat penggunaan.md.
fq terinspirasi oleh alat dan bahasa jq dan memungkinkan Anda bekerja dengan format biner dengan cara yang sama. Selain menggunakan ekspresi jq, ia juga dapat menyajikan struktur pohon yang didekodekan, mengubah, mengiris, dan menggabungkan data biner. Ini juga mendukung format bersarang dan menampilkan REPL interaktif dengan pelengkapan otomatis fungsi dan nama.
Awalnya dirancang untuk menanyakan, memeriksa dan men-debug codec dan container media seperti MP4, FLAC dan JPEG tetapi sejak itu telah diperluas untuk mendukung berbagai format seperti executable, pengambilan paket (dengan perakitan ulang TCP) dan format serialisasi seperti JSON, YAML, XML , CBOR, protobuf. Selain itu juga memiliki fungsi untuk bekerja dengan URL, mengkonversi ke/dari hex, basis angka, mencari pola dll.
aac_frame, iklan, adts_frame, aiff, amf0, apev2, apple_bookmark, ar, asn1_ber, av1_ccr, av1_frame, av1_obu, avc_annexb, avc_au, avc_dcr, avc_nalu, avc_pps, avc_sei, avc_sps, avi, avro_ocf, bencode, bitcoin_blkdat, bitcoin_block, bitcoin_script, bitcoin_transaction, bits, bplist, bsd_loopback_frame, bson, bytes, bzip2, caff, cbor, csv, dns, dns_tcp, elf, ether8023_frame, Exim, fairplay_spc, fit, flac, flac_frame, flac_metadatablock, flac_metadatablocks, flac_picture, flac_streaminfo, gif, gzip, hevc_annexb, hevc_au, hevc_dcr, hevc_nalu, hevc_pps, hevc_sps, hevc_vps, html, icc_profile, icmp, icmpv6, id3v1, id3v11, id3v2, ipv4_packet, ipv6_packet, jp2c, jpeg, json, jsonl, leveldb_descriptor, leveldb_log, leveldb_table, luajit, macho, macho_fat, penurunan harga, matroska, midi, moc3, mp3, mp3_frame, mp3_frame_vbri, mp3_frame_xing, mp4, mpeg_asc, mpeg_es, mpeg_pes, mpeg_pes_packet, mpeg_spu, mpeg_ts, msgpack, negentropy, nes, ogg, ogg_page, opentimestamps, opus_packet, pcap, pcapng, pg_btree, pg_control, pg_heap, png, prores_frame, protobuf, protobuf_widevine, pssh_playready, rtmp, sll2_packet, sll_packet, ketuk, tar, tcp_segment, tiff, tls, toml, tzif, tzx, udp_datagram, vorbis_comment, vorbis_packet, vp8_frame, vp9_cfm, vp9_frame, vpx_ccr, wasm, wav, webp, xml, yaml, zip
Ia juga dapat bekerja dengan beberapa format teks umum seperti URL, hex, base64, PEM dll dan untuk beberapa format serialisasi seperti XML, YAML, dll. ia dapat mengubah nilai dari dan ke jq.
Untuk detailnya lihat format.md dan penggunaan.md.
Gunakan salah satu metode yang tercantum di bawah atau unduh rilis bawaan untuk macOS, Linux, atau Windows. Batalkan pengarsipannya dan pindahkan file yang dapat dieksekusi ke PATH
dll.
Di macOS, jika Anda tidak menginstal menggunakan salah satu metode di bawah ini, Anda mungkin harus mengizinkan biner berjalan secara manual. Hal ini dapat dilakukan dengan mencoba menjalankan biner, mengabaikan peringatan, lalu masuk ke preferensi keamanan dan mengizinkannya. Hal yang sama dapat dilakukan dengan perintah ini:
xattr -d com.apple.quarantine fq && spctl --add fq
brew install wader/tap/fq
Di macOS, fq
juga dapat diinstal melalui MacPorts. Lebih detailnya di sini.
sudo port install fq
fq
dapat diinstal melalui scoop.
scoop install fq
fq
dapat diinstal dari repositori tambahan menggunakan pacman:
pacman -S fq
Anda juga dapat membuat dan menginstal paket pengembangan (VCS) menggunakan pembantu AUR:
paru -S fq-git
nix-shell -p fq
Gunakan port fq.
Saat ini dalam pengujian edge tetapi juga akan berfungsi dengan baik secara stabil.
apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing fq
Pastikan Anda telah menginstal versi 1.22 atau lebih baru.
Untuk menginstal langsung dari repositori git (tidak perlu git clone):
# build and install latest release
go install github.com/wader/fq@latest
# build and install latest master
go install github.com/wader/fq@master
# copy binary to $PATH if needed
cp " $( go env GOPATH ) /bin/fq " /usr/local/bin
Untuk membangun, menjalankan, dan menguji dari sumber:
# build and run
go run .
# build and run with arguments
go run . -d mp3 . file.mp3
# just build
go build -o fq .
# run all tests and build binary
make test fq
Lihat dev.md
Proyek ini tidak akan mungkin terwujud tanpa implementasi jq itchyny gojq. Saya juga ingin mengucapkan terima kasih kepada HexFiend atas inspirasi dan ide serta stedolan karena menciptakan bahasa jq.
tshark -T json
).mediainfo --Output=JSON
dan mediainfo --Details=1
).Lihat TODO.md
fq
didistribusikan berdasarkan ketentuan Lisensi MIT.
Lihat file LISENSI untuk rincian lisensi.
Lisensi ketergantungan langsung: