灵犀claw创建skill(8)——全文搜索

wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

前几天用灵犀claw写py或pwsh脚本类型的skill,非常准确

今天打算将wsl里手写的sh脚本变成skill

正好试了一下,直接手写md文件创建skill的方式


先说一下全文搜索,类似AnyTxt的工具确实非常好用,但是图形界面不适合灵犀claw调用,难以和其他skill配合起来使用,所以这里选择用ripgrep写脚本

  • ripgrep有个参数--pre,可以设置一个sh脚本,在里面对任何类型的文件进行预处理再进行全文搜索

  • 比如,对于图片文件,可以调用OCR图像识别其中的文字

  • 对于ofd文件,可以unzip解压缩其中的xml

  • 对于pdf文件,可以pdftotext提取其中的文字

  • 对于xlsm文件,可以解压获取其中xml和jsa

只要写出对应类型的预处理方法,就可以快速全文搜索任何文件,不限于图片、pdf等等


在wsl里写了两个简单的脚本

  • 先是~/pre-ofd.sh,这里只定义了ofd格式的预处理方式,是用unzip解压其中的所有xml文件

#!/bin/sh
case "$1" in
    *.ofd) unzip -p "$1" *.xml ;;
    *) cat "$1" ;;
esac
  • 再就是~/ripgrep-ofd.sh,这里就一句rg命令,用--pre参数指向上面的预处理脚本,-g参数是通配符只处理ofd文件,-l参数是说只输出文件名,后面就是脚本接受两个参数,分别是查找的正则表达式,以及查找的目录

#!/bin/sh
rg --pre=/home/wils/pre_ofd.sh -g '*.ofd' -l "$1" "${2:-.}"

有了上面的脚本,我没有和灵犀claw对话,而是直接在这个目录里手动创建SKILL.md

C:\Users\Administrator\AppData\Roaming\WPS 灵犀\serverdir\skills\ripgrep-ofd

🔔

---

name: ripgrep-ofd

description: 使用 WSL(Debian)中的 ripgrep 全文搜索 OFD 文件。适用于在指定目录内查找含有指定文本或正则表达式的 .ofd 文件。关键词:ripgrep、ofd、全文搜索。

---

# 全文搜索 OFD 文件

使用 WSL 中的 ripgrep 搜索 OFD 文件。OFD 本质是 ZIP 打包的 XML 文件,脚本通过 `--pre` 预处理器将 .ofd 解压后搜索其 XML 内容。

## 前置条件

系统 PATH 中已安装 **wsl**。

## 用法

**不要创建任何脚本文件**,直接在代码中执行以下命令:

```powershell

wsl bash ~/ripgrep-ofd.sh '<搜索词>' '[可选:WSL格式的目录路径]'

```

- `<搜索词>`:用户要查找的文本,需原样传入(rg 支持正则语法)

- 目录参数可选,不传则在当前 WSL 工作目录搜索

- 目录路径必须是 WSL 格式(如 `/mnt/c/Users/...`),可用 `wsl wslpath -u <Windows路径>` 转换

**注意:** 脚本内部使用 `rg --pre` 机制,仅处理 `*.ofd` 文件,非 ofd 文件会直接 `cat` 读取。

一开始写的没有这么详细,只有name和description以及简单的用法

之后,直接让灵犀claw找出桌面上含有指定内容的ofd文件,竟然也能成功

然后,让灵犀claw改进SKILL.md文件,灵犀竟然主动检查了wsl里的两个脚本,然后改成了上面的样子,比我写的详细完整

之后,灵犀甚至帮我优化了wsl里的sh脚本,比如第二个参数是查找的目录,帮我添加了如果没有指定目录,则使用.查找当前目录的逻辑

也就是说,对于自己写的脚本,只需要在md里写出大致用法,灵犀claw可以准确的生成skill,甚至可以反过来优化脚本,且可以和其他流程配合使用,极大的方便了脚本的使用和分享

海南省
浏览 168
收藏
4
分享
4 +1
1
+1
全部评论 1
 
wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

有个疑问,优化了这个sh小脚本,生成并优化了skill,执行了两次,一共用了100灵犀点 这点数和token的比例是1:1吗,还是说1点对应10token,有没有大佬了解
· 海南省
回复