入门

第 5

不用逐个打开文件,也能搜索、筛选与批量修改

搜索不只是更快地找文件,而是一种理解项目的方式。

搜索就是向项目提问

描述名称、文本、类型或起始路径,让目录树返回证据。面对陌生项目时,可以用越来越窄的问题逐步建立地图。

先准备一个安全的小样本

创建示例文件并复制一份,再把副本中的 alpha 改成 beta。在已知答案的数据上练习,最容易发现搜索或替换是否偏离目标。

先用这个内容创建文件
project=alpha
status=draft
owner=Max
note=rename images before release
install md code copy find replace stat attr
cd lil-playground
md project/search
code project/search/notes.txt -n
copy project/search/notes.txt project/search/notes-2.txt
replace alpha beta project/search/notes-2.txt -w

文件名和文件内容是两个维度

-f 查名称,-t 查文本;路径、扩展名和大小写共同定义问题的边界。

find notes -f -p project/search
find draft -t -p project/search
find owner -t -e txt -p project/search

先缩小,再扩大

从可能包含答案的最小目录开始。可理解的小结果集,比复杂的全局搜索更安全。

find project -F -p .
find status -t -h -p project/search
find Max -t -c -p project/search

批量替换应该先成为报告

replace 默认只预览。确认命中项后再加 -w,需要时用 -b 保留备份。

replace draft reviewed project/search -r -e txt
replace draft reviewed project/search -r -e txt -w -b
find reviewed -t -p project/search

元数据也是证据

statattr 可以用大小、MIME、图片尺寸等信息确认候选文件是否真的是目标。

stat project/search/notes.txt
attr project/search/notes.txt size
attr project/search/notes.txt mime

验证过的转换就是一项小技术

把搜索、预览、写入和再次检查保存为 .lil。真正可迁移的知识,是你理解的可重复流程。

把它保存成脚本

确认预览无误后,把这段保存为 review-status.lil

#lil
@install find replace stat attr
cd lil-playground
find draft -t -p project/search
replace draft reviewed project/search -r -e txt
replace draft reviewed project/search -r -e txt -w -b
find reviewed -t -p project/search
stat project/search/notes.txt