{"id":26897308,"url":"https://github.com/atomiechen/catchfishifyoucan","last_synced_at":"2025-05-12T23:44:03.779Z","repository":{"id":37500023,"uuid":"499075045","full_name":"atomiechen/CatchFishIfYouCan","owner":"atomiechen","description":"查找漏网之鱼：根据对照名单查找缺漏的名字","archived":false,"fork":false,"pushed_at":"2022-06-25T11:23:51.000Z","size":5761,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T23:43:55.488Z","etag":null,"topics":["utools","utools-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atomiechen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-02T09:36:31.000Z","updated_at":"2024-10-03T16:07:31.000Z","dependencies_parsed_at":"2022-08-23T15:50:32.151Z","dependency_job_id":null,"html_url":"https://github.com/atomiechen/CatchFishIfYouCan","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomiechen%2FCatchFishIfYouCan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomiechen%2FCatchFishIfYouCan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomiechen%2FCatchFishIfYouCan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomiechen%2FCatchFishIfYouCan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomiechen","download_url":"https://codeload.github.com/atomiechen/CatchFishIfYouCan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843165,"owners_count":21972867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["utools","utools-plugin"],"created_at":"2025-04-01T04:42:09.745Z","updated_at":"2025-05-12T23:44:03.759Z","avatar_url":"https://github.com/atomiechen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"middle\"\u003e\n  \u003cimg src=\"img/banner.jpeg\" /\u003e\n\u003c/div\u003e\u003cbr\u003e\n\n# 漏网之鱼 Catch Fish If You Can\n\n一个实用uTools插件，能够对照预设名单查找“漏网之鱼”，方便快速统计。\n\n\u003cdiv align=\"middle\"\u003e\n  \u003cimg src=\"img/thumb.gif\" /\u003e\n\u003c/div\u003e\u003cbr\u003e\n\n\u003cdiv align=\"middle\"\u003e\n  \u003cimg src=\"img/img_main.png\" width=\"320\" /\u003e\n  \u003cimg src=\"img/img_set.png\" width=\"320\" /\u003e \n\u003c/div\u003e\n\n\n\n支持的具体功能如下：\n\n- 针对任意文本（无论名字间是否有分隔符），对照单个或多个名单查找缺失的名字，并可同时查看此时正在使用的全名单\n  - 🌟 可以选中任意文本（甚至excel表格），然后通过utools快捷面板一键呼出“查找漏网之鱼”；也可以直接在插件文本框内输入搜索文本\n    - *注：如果“张三”和“张三丰”同时存在，会首先匹配更长的“张三丰”；如果查询字符串有歧义，例如“张三丰子恺”，可以手动在名字间添加分隔来消歧*\n  - ✅ 支持单选/多选名单\n  - ✅ 支持设置输出名字之间的分隔符，也可自定义分隔符\n  - ✅ 支持导出查找结果/全名单到文件\n- 支持设置不同名单，自动从文本中识别连续英文字母和汉字字符构成的名字（空格、逗号等其他字符作为分断）\n  - 🌟 可以选中任意文本（甚至excel表格），然后通过utools快捷面板一键呼出“新建名单”；也可以直接在设置输入框内键入名单文本，或上传文本文件\n    - *注：目前支持上传txt、csv、md、markdown后缀文本文件*\n\n\n\n## 背景\n\n当辅导员之后我经常遇到一个简单但解决不好的需求：每次收集学生的问卷，想要知道谁还没有填的时候，很麻烦。\n\n我周围朋友几乎没有人专门写代码读文件处理，因为数据量不大。解决方案无外乎两种：\n\n1. 在Excel里面把姓名排序，然后手工对照；\n2. 用Excel的VLOOKUP函数对照查找。\n\n我曾经使用方法2，存储了一个学生全名单和带有VLOOKUP公式的模板Excel文件，每次将最新的已填写名单粘到指定位置，获得自动更新的值。但这种方式需要每次打开模板文件，需要记住操作方式，依然很麻烦。这样一个对于计算机来说很容易的任务，即求两个集合差集，为什么对没有码力的普通用户来说那么难做？\n\n我理解的原因是：用户有“求差集”的计算意图，但并不关心如何从名单数据里识别姓名、用来对照的全名单应当以何种形式存储。真正使用时，用户更希望一键选择名单（选择数据）、一键开始计算（表达计算意图），剩下的繁杂工作交给更具智能的程序来做。\n\n“漏网之鱼”即服务于这样的目的。uTools提供了快捷键、超级面板等即为便捷的交互入口，因此本工具以uTools插件的形式完成上述功能。\n\n\n\n## DEMO\n\n\u003cdiv align=\"middle\"\u003e\n  \u003cvideo src=\"https://user-images.githubusercontent.com/36685998/175770971-8d37784a-8c96-49dc-b004-21d02dc3c60c.mp4\" /\u003e \n\u003c/div\u003e\n\n\n\n## 安装\n\n1. 首先确保已安装[uTools](https://u.tools/)。uTools是一个跨Windows、macOS和Linux的效率工具平台，本插件基于uTools的快捷入口（如超级面板）实现一键光速获取结果的效果，打造极为高效的桌面工具。\n2. 安装好uTools之后，有两种安装本插件的方式：\n   - **推荐**：在官方插件应用市场搜索“漏网之鱼”并安装（见下图），方便后续更新\n   - 从本仓库的[release页面](https://github.com/atomiechen/CatchFishIfYouCan/releases)下载插件文件，并通过utools超级面板或选中文件呼出utools来安装插件\n\n\u003cdiv align=\"middle\"\u003e\n  \u003cimg src=\"img/market_marked.png\" width=\"600\"/\u003e\n\u003c/div\u003e\u003cbr\u003e\n\n\n\n## Contributors\n\nAtomie CHEN：atomic_cwh@163.com\n\n❤️ 感谢Daci画的logo和banner！\n\n欢迎PR！\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomiechen%2Fcatchfishifyoucan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomiechen%2Fcatchfishifyoucan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomiechen%2Fcatchfishifyoucan/lists"}