Extract file paths from logs and text

Paste compiler output, stack traces, git status output, or prose and get the file paths back deduplicated, filtered, sorted, and ready to copy.

Try:
Extracted paths

About this tool

Use Path Extractor when you have noisy text — a compiler log, a Python traceback, git status, CI output, or a pasted chat message — and you only want the file paths. It recognizes common POSIX paths, Windows drive paths, UNC shares, quoted paths with spaces, and source locators such as src/main.rs:42:9 or src\main.c(12,4).

Worked example: paste this log:

error[E0308]: mismatched types
  --> src/main.rs:42:9
warning: unused import in src/main.rs
   Compiling foo (/home/dev/projects/foo)

With the defaults, the output is:

src/main.rs
/home/dev/projects/foo

Turn on “Keep :line and :column suffixes” when you want src/main.rs:42:9 in the list. Change “Return” to Filename only for main.rs, or to Directory only for src. Use the extension filter to keep just files like rs, toml, md, and switch the output format to CSV or JSON when you need occurrence counts or line/column metadata.

Limits and edge cases: the scanner is shape-based and never checks whether a file exists on disk. URLs, dates, numeric ratios, and ordinary prose are intentionally ignored. Bare filenames such as main.rs are matched only when “Require / or \ in each match” is turned off, because that mode is higher-recall and more ambiguous. Input is capped at about 1 MB and 20,000 path occurrences.

FAQ

Does this check whether the files actually exist?

No. The tool runs locally in a browser or sandboxed WebAssembly block and never stats the filesystem. It extracts strings that look like paths, then filters, deduplicates, sorts, and formats them.

Why are line numbers stripped by default?

Most users want a reusable file list, so src/main.rs:42:9 becomes src/main.rs by default. Enable “Keep :line and :column suffixes” when you are pasting output into an editor, quickfix list, or another tool that understands locators.

How do I extract only filenames or directories?

Set “Return” to Filename only to turn src/app/main.rs into main.rs, or to Directory only to return src/app. Deduplication happens after this projection, so repeated filenames or directories are counted together.

Why did it miss a bare filename like main.rs?

The default requires a slash or backslash because bare words with dots are easy to confuse with versions, decimals, prose, or domain-like text. Turn off “Require / or \ in each match” to opt into bare extension-bearing filenames such as main.rs and Cargo.toml.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool path-extractor 'error[E0308]
  --> src/main.rs:42:9
modified: docs/readme.md
open C:\Users\me\app.log'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/path-extractor/?text=error%5BE0308%5D%0A%20%20--%3E%20src%2Fmain.rs%3A42%3A9%0Amodified%3A%20docs%2Freadme.md%0Aopen%20C%3A%5CUsers%5Cme%5Capp.log&path_style=any&require_separator=true&keep_line_numbers=true&output=path&extensions=rs%2C%20toml%2C%20md&extension_mode=include&dedupe=true&sort=first-seen&format=list

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.