如何用jq选择指定Chrome窗口并按raw_url排序其标签页?
使用jq处理Tabfern导出文件:选择特定窗口并排序标签页
核心操作逻辑
- 定位目标窗口:通过窗口标题或数组索引选中需要处理的窗口
- 排序标签页:对目标窗口下的
tabs数组按raw_url字段重新排序 - 保留原结构:仅修改目标窗口的标签页顺序,不改动JSON其他内容
具体命令示例
按窗口标题匹配并排序
如果要选中标题为"OpenAI"的窗口,对其标签页按raw_url升序排序:
.tree |= (map(select(.raw_title == "OpenAI") | .tabs |= sort_by(.raw_url)) + map(select(.raw_title != "OpenAI")))
按数组索引定位并排序
如果目标窗口是tree数组中的第1个元素(数组索引从0开始):
.tree[0].tabs |= sort_by(.raw_url)
完整文件处理命令
假设导出的JSON文件名为tabfern_backup.json,处理后输出到新文件:
jq '.tree |= (map(select(.raw_title == "OpenAI") | .tabs |= sort_by(.raw_url)) + map(select(.raw_title != "OpenAI")))' tabfern_backup.json > sorted_tabfern.json
补充说明
- 若需要降序排序,可在
sort_by(.raw_url)后追加| reverse,即sort_by(.raw_url) | reverse - 标题匹配方式适合窗口标题唯一的场景;索引方式更直接,适合明确窗口位置的情况
内容的提问来源于stack exchange,提问作者Philip Rhoades P
相关产品推荐
相关产品推荐

