正确提取ip需分两步:先ctrl+f用正则^.\b(?:\d{1,3}.){3}\d{1,3}\b.$匹配整行并ctrl+l选中,再用\b((?:\d{1,3}.){3}\d{1,3})\b配合alt+enter精准提取裸ip。

Ctrl+Shift+L 选中行后,再用正则定位 IP 才可靠
直接 Ctrl+D 或 Ctrl+Click 想“多光标点中所有 IP”基本不可行——IP 地址不是完整单词,Ctrl+D 默认按词边界匹配,192.168.1.1 会被拆成 192、168 等片段,光标全错位。
正确路径是:先锁定含 IP 的整行 → 再在这些行里批量提取 IP 字符串。关键在于分两步走,不贪一步到位。
- 先用
Ctrl+F输入正则^.*\b(?:\d{1,3}\.){3}\d{1,3}\b.*$,勾选.*(Regular Expression),点Find All - 立刻按
Ctrl+L(Windows/Linux)或Cmd+L(macOS),把每个匹配位置扩展为整行选中 - 再按
Ctrl+Shift+L,此时每行末尾各有一个光标,准备进入“行内精确定位”阶段
用捕获组 + Alt+Enter 提取纯 IP,不带前后文
如果只想要 192.168.1.1 这类裸 IP,不要整行内容,就得靠正则捕获组。否则复制出来全是日志前缀或多余字段。
Alt+Enter(Windows/Linux)或 Cmd+Enter(macOS)在 Find All 后,**只选中括号内的内容**,这是 Sublime 唯一能“精准切片”的机制。
- 在
Ctrl+F面板中输入:\b((?:\d{1,3}\.){3}\d{1,3})\b(注意外层括号) - 务必勾选
.*,否则括号无意义;大小写敏感不用关,IP 本身无大小写 - 点
Find All→ 立刻按Alt+Enter,此时只有 IP 字符串被高亮选中 -
Ctrl+C复制,Ctrl+N新建窗口粘贴,结果就是干净的 IP 列表,每行一个
跨文件批量抓 IP?别用 Ctrl+Shift+F 直接复制
Ctrl+Shift+F 能扫整个项目,但输出格式是 path/to/file:42:xxx 192.168.1.1 yyy,直接复制会混入路径和行号,无法直接当 IP 列表用。
想跨文件提取纯 IP,必须加一层清洗,不能跳过。
- 在
Where栏填明确范围,如./logs/**/*.log,避免全盘扫描卡死 - 查找框输入:
\b((?:\d{1,3}\.){3}\d{1,3})\b,勾选Regular Expression - 搜索完成后,右键结果页 →
Copy All,粘贴到新窗口 - 用
Ctrl+H两次清洗:
– 第一次查找^[^:\n]+:\d+:\s*,替换为空(删路径+行号前缀)
– 第二次查找\n\s*\n,替换为\n(去空行)
为什么你按了 Ctrl+Shift+L 却只出现一个光标
这不是 Bug,是 Sublime 对“选区”的严格定义:Ctrl+Shift+L 只在选区中包含换行符(\n)时,才按行切片生成多个光标。鼠标拖选没拖到行尾,或最后一行没选中换行符,它就当你是单行操作。
最稳的启动方式,永远是:Ctrl+F → Find All → Ctrl+L(连续按多次确保覆盖所有目标行)→ Ctrl+Shift+L。
另外注意:如果某行 IP 出现在行首或行尾,且该行有空格缩进,光标会落在空格列上,后续输入可能错位。建议提前执行 Ctrl+Shift+P → Convert Indent to Spaces 统一缩进。











