Package Control

The official Sublime Text package manager.

Extractor

Extract emails, URLs, IPs, domains, dates, UUIDs, secrets — or any regex — from the current file into a new de-duplicated file. 22 built-in extractors, Command Palette + Tools menu, no dependencies.

By bogdancstrike
Created July 10, 2026, last updated July 21, 2026.

JunMayAprMarFebJan Dec2025 NovOctSepAugJul 2026-W30 | installs: 1 | removals: 0 | upgrades: 0 2026-W30 | installs: 1 | removals: 0 | upgrades: 0 2026-W30 | installs: 1 | removals: 0 | upgrades: 0 024 WeeklyInstalls 024 WeeklyUpgrades 2026-W30 | upgrades: 0 1.0.1 2026-W28 1.0.0
Installations: 1 in total
Installations minus removals
Upgrades

Links

Versions

1.0.1 ·
2026-07-21 17:07

More
  • (*) 1.0.0 ·
    2026-07-10 18:16

🔎 Extractor

Pull every email, URL, IP, date, UUID, secret — or anything a regex can match — out of the current file and into a fresh, de-duplicated one.

Sublime Text Python Platform Dependencies


Logs, configs, dumps and docs are full of buried structure. Extractor scrapes it out in one command: choose what to pull, and it collects every match from the file (or your selection), removes duplicates, and opens the results in a new tab — ready to save, sort or paste elsewhere.

✨ Features

🚀 Usage

  1. Open the Command Palette (Ctrl/Cmd + Shift + P).
  2. Run Extractor: Extract to new file….
  3. Pick what to extract. Done — the matches open in a new tab.

Prefer fewer clicks? Every extractor also has:

💡 By default Extractor reads the whole file, or just your selection when you have one. Change this under Preferences → Package Settings → Extractor → Settings.

Bind a key

Any extractor can be bound directly by passing its kind:

{ "keys": ["ctrl+alt+e"], "command": "extractor", "args": { "kind": "emails" } }

Omit args to open the picker.

🧰 What it can extract

Extractor Matches
Emails user@host.tld
URLs http, https, ftp and www. links
Domains Registrable root domains (example.co.uk)
Hostnames Fully-qualified host names and localhost
IPv4 addresses Dotted-quad addresses (192.168.0.1)
IPv6 addresses Colon-hex addresses (::1, fe80::…)
Ports Port numbers from host:port references
Phone numbers International / local numbers (heuristic)
Dates ISO, numeric and month-name dates
Times Clock times, optional seconds and AM/PM
Timestamps ISO 8601, syslog and Unix-epoch timestamps
File paths Unix, Windows and UNC paths
UUIDs RFC 4122 UUIDs / GUIDs
MAC addresses Ethernet hardware addresses
Hex colors #rgb and #rrggbb
Numbers Integers and decimals (thousands-aware)
Hashtags #hashtag
Mentions @handle
Credit cards 13–19 digit numbers that pass the Luhn check
Secrets & API keys AWS / Google / GitHub / Slack keys, JWTs, PEM private keys
Markdown links URLs inside [text](url)
Custom regex… Everything matching a pattern you type

📦 Installation

  1. Open the Command Palette and run Package Control: Install Package.
  2. Search for Extractor and press Enter.

Manual install

  1. In Sublime Text, open Preferences → Browse Packages….
  2. Create a folder named Extractor.
  3. Copy the contents of this repository into it.
  4. Restart Sublime Text, or run Tools → Developer → Reload Plugins.

⚙️ Settings

Preferences → Package Settings → Extractor → Settings

{
    "unique": true,                  // drop duplicate matches
    "case_insensitive_dedupe": true, // "Example.com" == "example.com"
    "sort": false,                   // keep first-seen order (true = sort A→Z)
    "source": "auto"                 // "auto" | "selection" | "file"
}

⚠️ Notes on accuracy

Extraction from free-form text is inherently heuristic. A few deliberate trade-offs:

🤝 Contributing

Issues and pull requests are welcome — new extractors, better patterns, and test cases especially.

📄 License

Released under the MIT License.

Results

Packages