Before replacing across files, turn the Grep result list into a file-by-file approval decision. In this example, 21 matches are not one replacement set: 16 belong to ten current text files, while five belong to two quoted-reference files that must retain the old wording.
The key skill is reading results, not launching a workspace-wide replacement. Fix the operating scope as approved/; keep excluded/ outside it.
Read the result list by filename
The ten approved files produced this distribution:
| File | Matches | Context decision | Approved replacements |
|---|---|---|---|
app-01.md |
2 | Current prose | 2 |
app-02.md |
2 | Current prose | 2 |
app-03.md |
2 | Current prose | 2 |
app-04.md |
2 | Current prose | 2 |
app-05.md |
2 | Current prose | 2 |
app-06.md |
2 | Current prose | 2 |
app-07.md |
1 | Current prose | 1 |
app-08.md |
1 | Current prose | 1 |
app-09.md |
1 | Current prose | 1 |
app-10.md |
1 | Current prose | 1 |
| Total | 16 | Approved scope | 16 |
Two quoted-reference files account for the remaining five matches: three in quote-01.md and two in quote-02.md. The reconciliation is therefore 21 = 16 + 5. Do not replace while the result list fails that equation.
Approve contexts at file level
A matching line is not automatically replaceable. Quotations, historical names, recorded speech, and comparison copies may need to preserve the old term.
- Fix the search root to the project folder and limit file extensions to editable text sources.
- Group all 21 matches by filename and line number; read at least the surrounding sentence.
- Label each file “update current prose,” “preserve quotation,” or “undecided.” Any undecided context keeps that file out of the approved scope.
- Place the ten approved files under
approved/and the two quotation files underexcluded/. - Search each scope again. Expect 16 matches under
approved/and five underexcluded/.
The replacement target is now a fixed folder of reviewed files, not the entire workspace. That boundary is what keeps a later command from silently expanding back to all 21 matches.
Replace 16, then search in both directions
Preview the replacement against approved/. It should report ten files and 16 changes with no failed file. Only then apply it.
Afterward, run two searches:
- old wording under
approved/: zero matches; - old wording under
excluded/: five matches.
An old-term result of zero is not enough by itself. It could mean that the five quotations were changed accidentally. The complete pass condition is zero in the approved scope and five retained exceptions. A search for 16 new terms adds another useful reconciliation.
The bounded Rune Studio result
Rune Studio’s current Mac documentation describes workspace search grouped by file and line, reviewed replacement, and scope limited to selected files or folders.
In the recorded operation, approved/ contained ten files and 16 matches. The preview also reported ten files and 16 replacements. After the replacement, reverse search returned zero in that folder. The two excluded quotation files still contained five old-term matches. The measured transition was therefore 21 = 16 + 5, followed by 0 + 5.
The editor did not decide which contexts were quotations. A person separated those files first and constrained the operation to the approved folder. Automatic semantic judgment, every regular-expression feature, and binary replacement are outside this result.
A Grep replacement begins with interpretation
For multi-file editing, the result list is the control surface. Read it per file, reconcile approved and excluded counts, constrain the folder, and verify both changed and preserved scopes afterward.
Start by writing your own equation—such as 21 = 16 + 5—before replacing anything. For more detail, review the Rune Studio download and feature page.