replace

replace 会先预览选定文件中的文本或正则替换;没有 -w 就不会写入。可以按路径、扩展名或 glob 缩小范围。

开发版本 1.1.4稳定
lil-terminal

概览

当同一处文本修改需要应用到多个文件时,第一次运行应保持预览模式。先确认文件列表和匹配数量,再用 -w 重复同一命令。

写入之前先确认影响范围

例如 replace debug false config -r -e ini 只显示文件和匹配数量。确认列表无误后再加 -w;批量修改前需要 .bak 备份时再加 -b

语法

lil-terminal
replace <old> <new> [path] [options]

参考

replace <old> <new>

预览当前目录文件中的替换

replace <old> <new> <file>

预览单个文件中的替换

replace <old> <new> <dir> -r

递归预览目录中的替换

-w

原子写入计划中的修改

-i

普通文本匹配时忽略大小写

-p

把 <old> 作为完整 PHP 正则表达式

-e <exts>

限制扩展名,例如 php,js,css 或 tar.gz

-g <glob>

用 *.php 之类 glob 限制文件名

-b

写入前创建 .bak 副本

-a

包含 vendor、node_modules、VCS 与缓存目录

选择范围

未给路径时使用当前目录。只有 -r 才进入子目录。-e <exts> 按扩展名筛选,-g <glob> 按文件名筛选。依赖、VCS 与缓存目录默认跳过,使用 -a 才包含;符号链接始终不处理。

预览与写入

默认只预览,并显示每个文件的匹配数量。确认后用 -w 重复命令进行写入。-b 会先创建 .bak,若备份已存在则停止。-i 用于普通文本;-p 需要包含分隔符的完整 PHP 正则。

限制与安全

单次最多扫描 5000 个文件;超过 4 MiB 的文件和二进制文件会跳过。报告最多列出 500 个受影响文件。写入通过临时文件和 rename 完成。

交互式 sandbox 预览

可直接在页面中运行预先准备的示例。结果已预先生成并在浏览器中显示;服务器不会执行任何终端命令。

预览单个文件中的替换

安装与管理

安装当前兼容版本。完整功能请选择 Base,精简包请选择 Minimum;已安装模块的更新请使用 upgrade。

Base 与 Minimum 是同一当前模块版本的两个包。

Base 包

安装包含本地参考和全部已发布模式的完整包。

install replace
Minimum 包

安装精简包。该包不包含本地参考;help <cmd> -i 会打开当前服务器参考。

install replace -m
精确公开版本

安装这个确切的已发布版本。

install replace -v 1.1.4
检查或升级

让 upgrade 检查兼容性,仅在需要时替换已安装块。

upgrade replace
删除模块

删除扩展块,不影响核心和其他模块。

install replace -u

示例

示例可复制,但网站不会执行。请先检查路径、权限和破坏性选项。

预览单个文件中的替换
cd \sandbox | replace beta "beta reviewed" workspace/original.txt
Preview      workspace/original.txt
Files        1
Matches      1
Would write  1
原子写入计划中的修改
replace alpha omega workspace/original.txt -w
Write     workspace/original.txt
Files     1
Replaced  1
普通文本匹配时忽略大小写
replace ALPHA omega workspace/original.txt -i
Preview      workspace/original.txt
Case         insensitive
Matches      1
Would write  1
把 <old> 作为完整 PHP 正则表达式
replace "~beta.*~" "beta" workspace/original.txt -p
Preview      workspace/original.txt
Mode         regex
Matches      1
Would write  1
限制扩展名,例如 php,js,css 或 tar.gz
replace debug false config -r -e ini
Preview      config
Extensions   ini
Files        1
Matches      1
Would write  1
用 *.php 之类 glob 限制文件名
replace alpha omega workspace -r -g "*.txt"
Preview      workspace
Mask         *.txt
Files        3
Matches      2
Would write  2
写入前创建 .bak 副本
replace debug false config -r -w -b
Write     config
Files     2
Replaced  2
Backups   2
包含 vendor、node_modules、VCS 与缓存目录
replace vendor_name package_name . -r -a
Preview      .
Hidden       included
Matches      1
Would write  1
处理缺失的目标路径
replace absent present missing.txt
未找到文件: missing.txt

本示例使用的文件: sandbox/workspace/replace.txt

该示例使用受保护的 /sandbox/ 文档工作区中的文件或目录。

status=draft
owner=lil
status=draft

相关文档

当前公开版本

v1.1.42026-08-13

更清晰的文本替换

帮助明确说明 replace 修改的是文件内容;简短的 <old>/<new> 占位符避免歧义。