Initial commit
This commit is contained in:
94
skills/toolkit/docs/tools/external/jq.md
vendored
Normal file
94
skills/toolkit/docs/tools/external/jq.md
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
name: jq
|
||||
description: JSON数据的命令行处理器 - 查询、过滤和转换JSON
|
||||
category: advanced
|
||||
tool_id: EXT-JQ-001
|
||||
---
|
||||
|
||||
# jq (JSON Processor) ⭐⭐⭐⭐⭐
|
||||
|
||||
## 用途
|
||||
命令行JSON查询、过滤和转换工具
|
||||
|
||||
## 安装
|
||||
|
||||
### macOS
|
||||
```bash
|
||||
brew install jq
|
||||
```
|
||||
|
||||
### Ubuntu/Debian
|
||||
```bash
|
||||
sudo apt-get install jq
|
||||
```
|
||||
|
||||
## 基础使用
|
||||
|
||||
```bash
|
||||
# 美化打印
|
||||
cat data.json | jq '.'
|
||||
|
||||
# 提取字段
|
||||
cat api.json | jq '.users[0].name'
|
||||
|
||||
# 数组长度
|
||||
cat data.json | jq '.items | length'
|
||||
|
||||
# 过滤
|
||||
cat logs.json | jq '.[] | select(.level == "ERROR")'
|
||||
|
||||
# 转换
|
||||
cat data.json | jq '{new_name: .old_name, count: .items | length}'
|
||||
```
|
||||
|
||||
## 在ai-runtime中的使用
|
||||
|
||||
```bash
|
||||
# 分析JSON格式的认知记录
|
||||
jq '.entries[] | select(.type == "ERROR")' .ai-runtime/memory/episodic/timeline.json
|
||||
|
||||
# 发现工具统计显示
|
||||
python3 discover-toolkit.py list --json | jq '.[] | {tool: .tool_name, lang: .language}'
|
||||
|
||||
# 提取依赖分析结果
|
||||
python3 dependency-analyzer.py . -o report.json | jq '.vulnerabilities'
|
||||
```
|
||||
|
||||
## 常用操作
|
||||
|
||||
### 数组操作
|
||||
```bash
|
||||
# 映射
|
||||
cat data.json | jq 'map(.value * 2)'
|
||||
|
||||
# 过滤
|
||||
cat data.json | jq 'map(select(.active == true))'
|
||||
|
||||
# 排序
|
||||
cat data.json | jq 'sort_by(.date)'
|
||||
```
|
||||
|
||||
### 对象操作
|
||||
```bash
|
||||
# 添加字段
|
||||
cat data.json | jq '. + {new_field: "value"}'
|
||||
|
||||
# 删除字段
|
||||
cat data.json | jq 'del(.old_field)'
|
||||
|
||||
# 合并对象
|
||||
cat data1.json data2.json | jq -s 'add'
|
||||
```
|
||||
|
||||
### 高级技巧
|
||||
|
||||
```bash
|
||||
# 条件判断
|
||||
cat config.json | jq '.env.WIN_VERBOSE = if .debug then "true" else "false" end'
|
||||
|
||||
# 管道操作
|
||||
cat data.json | jq '.items[] | select(.price > 100) | .name'
|
||||
|
||||
# 变量赋值
|
||||
cat data.json | jq 'first(.items[] | select(.id == "123")) as $item | $item.price'
|
||||
```
|
||||
Reference in New Issue
Block a user