用於處理二進位資料的工具、語言和解碼器。
TLDR:它的目標是將 jq、hexdump、dd 和 gdb 檔案合併為一個。
基本用法是fq . file
、 fq d file
或fq 'some query' file ...
。
詳細資訊請參閱usage.md。
fq 受到 jq 工具和語言的啟發,讓您以相同的方式使用二進位格式。除了使用 jq 表達式之外,它還可以呈現解碼的樹狀結構、變換、切片和連接二進位資料。它還支援嵌套格式,並具有互動式 REPL,可自動完成函數和名稱。
它最初設計用於查詢、檢查和調試媒體編解碼器和容器,如MP4、FLAC 和JPEG,但後來擴展到支援各種格式,如可執行檔、資料包擷取(透過TCP 重組)和序列化格式,如JSON、YAML、XML 、CBOR、protobuf。此外,它還具有處理 URL、與十六進位相互轉換、數字基數、搜尋模式等功能。
aac_frame、adts、adts_frame、aiff、amf0、apev2、apple_bookmark、ar、asn1_ber、av1_ccr、av1_frame、av1_obu、avc_annexb、avc_au、avc_dcr、avc_nalu、abu、avc_annexb、avc_au、avc_dcr、avc_nalu、avc_pps、avc_bens、v、a_bens、avc_比特幣_腳本、 bitcoin_transaction、bits、bplist、bsd_loopback_frame、bson、位元組、bzip2、caff、cbor、csv、dns、dns_tcp、elf、ether8023_frame、exif、fairplay_spc、、famp、flac_fame、famesad、akfreads flac_streaminfo、gif、gzip、 leveldb_log、 leveldb_table、luajit、男子氣概、 macho_fat、markdown、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 , , pcap, pcappng, 、 、vp9_cfm、vp9_frame、 vpx_ccr、wasm、wav、webp、xml、yaml、zip
它還可以處理一些常見的文字格式,如 URL、十六進位、base64、PEM 等,以及一些序列化格式,如 XML、YAML 等。
有關詳細信息,請參閱formats.md和usage.md。
使用下面列出的方法之一或下載適用於 macOS、Linux 或 Windows 的預先建置版本。解壓縮它並將可執行檔移至PATH
等。
在 macOS 上,如果您不使用以下方法之一進行安裝,則可能需要手動允許二進位檔案執行。這可以透過嘗試執行二進位文件,忽略警告,然後進入安全性首選項並允許它來完成。可以使用此命令完成相同的操作:
xattr -d com.apple.quarantine fq && spctl --add fq
brew install wader/tap/fq
在 macOS 上, fq
也可以透過 MacPorts 安裝。更多詳細資訊請參閱此處。
sudo port install fq
fq
可以透過 scoop 安裝。
scoop install fq
可以使用 pacman 從額外的儲存庫安裝fq
:
pacman -S fq
您也可以使用 AUR 幫助程式建置和安裝開發 (VCS) 套件:
paru -S fq-git
nix-shell -p fq
使用 fq 連接埠。
目前正在進行邊緣測試,但在穩定版中也應該可以正常工作。
apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing fq
確保您已安裝 go 1.22 或更高版本。
直接從 git 儲存庫安裝(不需要 git 複製):
# 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
從原始碼建置、運行和測試:
# 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
參見 dev.md
如果沒有 itchyny 的 jq 實作 gojq,這個專案就不可能實現。我還要感謝 HexFiend 的靈感和想法,感謝 stedolan 發明了 jq 語言。
tshark -T json
)。mediainfo --Output=JSON
和mediainfo --Details=1
)。參見 TODO.md
fq
是根據 MIT 授權的條款分發的。
有關許可證詳細信息,請參閱許可證文件。
直接依賴的許可證: