귀하의 공급업체가 인수되었으며, 모든 계약서, 일정표, 예산서 및 슬라이드 데크에서 언급되는 **“ACME Corp”**는 이제 **“Globex Ltd”**가 되었습니다. 로컬에서 GroupDocs.Editor MCP 서버를 실행하고, Claude Desktop, Cursor 또는 Copilot이 배치 작업으로 수행합니다: 폴더의 각 파일에 대해 replace_text를 호출하고, 서식을 유지하며, 변경된 발생 횟수를 보고하고, 이전 이름이 언급되지 않은 파일에는 아무 것도 쓰지 않습니다. 아무 것도 업로드되지 않으며 원본이 덮어쓰여지지 않습니다:
모든 계약서 폴더의 문서에서 ACME Corp를 Globex Ltd로 이름을 바꾸고, 서식을 유지하며, 파일당 개수를 알려 주세요.
단계별 버전은 문서에 있습니다: How to find and replace text across a folder of documents without breaking the formatting.
왜 이것이 모델이 아니라 도구의 작업인가?
결과는 검증 가능해야 하기 때문입니다. 40개의 문서는 눈으로 차이를 확인하기엔 너무 많으며, “모든 계약서를 업데이트했다”는 모델은 검증할 대상이 없습니다. 찾기‑바꾸기 도구는 파일당 개수를 제공합니다. 이 숫자는 감사 추적이 됩니다: 어떤 파일이 변경됐는지, 얼마나 변경됐는지, 변경이 필요하지 않은 파일은 어떤 것인지 알 수 있습니다.
또한 올바른 방식으로 지루해야 합니다. 굵게 표시된 파티 이름은 굵게 유지되고, 요금표는 격자를 유지하며, 제목은 스타일을 유지합니다. 모델은 문서를 다시 입력하지 않습니다: 엔진이 문서를 열고, 단어를 교체하고, 복사본을 씁니다. 서버 26.10.0의 한 가지 주의점은 복사본이 엔진의 HTML 편집 모델에서 작성되며, Word footer가 포함되지 않는다는 것입니다. 푸터에 공급업체 이름이 있는 계약서는 대신 페이지가 매겨진 HTML 라운드‑트립이 필요합니다; FAQ에서는 Word 문서가 유지하는 항목을 나열합니다.
에이전트가 보는 내용
GroupDocs.Editor.Mcp 26.10.0을 사용해 작은 합성 세트(서비스 계약서, NDA, 환영 편지, 3시트 예산서, 3슬라이드 검토 데크)에서 캡처한 결과입니다.
-> replace_text {"file":{"filePath":"contracts/msa-northwind.docx"},
"find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'msa-northwind.docx'
Saved to: …/msa-northwind_edited.docx
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"}, ...}
<- Replaced 1 occurrence(s) of 'ACME Corp' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/welcome-letter.docx"}, ...}
<- Text replacement found no matches for 'ACME Corp' in
'welcome-letter.docx'. No file was written.
-> replace_text {"file":{"filePath":"budget.xlsx"}, ..., "worksheet":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in worksheet 1 of 3 of
'budget.xlsx'
-> replace_text {"file":{"filePath":"review.pptx"}, ..., "slide":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in slide 1 of 3 of
'review.pptx'
에이전트의 보고서는 자동으로 작성됩니다: 계약서에서는 6건, NDA에서는 1건, 환영 편지에서는 0건, 예산 요약에서는 1건, 첫 번째 슬라이드에서는 1건.
루프
contracts/ + budget.xlsx + review.pptx
|
+-- for each file:
| replace_text {"find":"ACME Corp","replace":"Globex Ltd",
| "wholeWord":true} (+ "worksheet"/"slide")
| -> "Replaced N occurrence(s) ..." -> <name>_edited.<ext>
| -> "found no matches ... No file was written."
|
'-- report: file -> count; files with 0 listed separately
두 가지 습관이 루프를 신뢰할 수 있게 합니다. 이름에는 wholeWord: true를 사용해 **“ACME Corp”**가 “ACME Corporation Holdings” 안에서 매치되지 않도록 합니다. 그리고 에이전트에게 매치가 0인 파일을 목록으로 알려 달라고 요청하세요. 변경될 것으로 기대한 파일에서 0이 나오면 두 번째 검토가 필요합니다.
교체하기 전에 배치를 확인하기
편집된 복사본은 원본 옆에 놓이며, 이때 검토합니다. 세 가지 간단한 검증으로 거의 모든 문제를 잡을 수 있습니다. 파일당 개수를 기대값과 비교하세요: 공급업체 이름이 모든 페이지에 나타나는 계약서는 1건이 보고돼서는 안 됩니다. 동일한 교체를 다시 실행하는 것에 의존하지 마세요: 서식이 나뉜 구문은 두 번째에도 놓치며, “found no matches”는 전부 정상인 것처럼 보일 수 있습니다. 에이전트에게 각 편집 복사본에 extract_html을 실행하도록 요청하세요; 평문 미리보기가 서식 구간을 합쳐 보여주므로 남은 “ACME Corp”가 드러납니다. 변형 표기(예: “Acme Corp.”, “ACME Corporation”)는 matchCase: false 또는 정규식으로 별도 패스를 수행합니다. 마지막으로 각 유형(계약서, 워크북, 프레젠테이션)에서 편집된 파일 하나씩 열어 서식과 푸터가 유지됐는지 확인하세요. 그 후에 _edited 파일을 원본 위에 덮어쓰거나 문서 시스템에서 버전 관리하도록 합니다.
같은 호출에서 패턴, 대소문자 및 형식 지정
이름 바꾸기가 일반적인 경우이지만, 동일한 도구로 “표현을 일관되게 만들기” 작업 전체를 처리할 수 있습니다. 같은 테스트 실행에서:
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"v2\\.3\\b","replace":"v2.4","regex":true,
"outputName":"nda-northwind-v2.4.docx"}
<- Replaced 1 occurrence(s) of 'v2\.3\b' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"acme corp","replace":"Globex Ltd","matchCase":false,
"format":"pdf"}
<- Replaced 1 occurrence(s) of 'acme corp' in 'nda-northwind.docx'
Saved to: …/nda-northwind_edited.pdf
regex: true는 .NET 정규식을 사용합니다. 버전 번호 상승이나 날짜 형식 변경을 폴더 전체에 적용할 때 유용합니다. matchCase: false는 대소문자 불일치를 잡아냅니다. format: "pdf"는 편집과 변환을 한 단계에 수행해, 다른 쪽으로 전달되는 복사본을 생성합니다.
코딩 에이전트를 위한 부가 설명
같은 패턴을 저장소에서도 사용할 수 있습니다. DOCX 형식의 릴리스 노트와 XLSX 형식의 사양은 sed로는 처리할 수 없지만, 이 서버와 함께 Claude Code를 사용하면 릴리스 작업의 일환으로 두 파일 모두 버전 문자열을 업데이트할 수 있습니다. 프로젝트 지침에 이 규칙을 넣어 에이전트가 도구를 사용하도록 하고, Office 파일을 직접 압축 해제하려 하지 않게 하세요:
To change wording in .docx/.xlsx/.pptx/.pdf files in this repo, use the
groupdocs-editor MCP server's replace_text (wholeWord for names, regex for
versions). Report the count per file. Never rewrite an Office file by hand.
솔직한 제한 사항
- 매칭은 하나의 서식 구간 내에서만 이루어집니다. 우리 계약서에서는 이탤릭체로 표시된 **“ACME”**가 포함된 일곱 번째 “ACME Corp”가 교체되지 않았으며, 6개의 카운트가 이를 보여줍니다. 스타일이 나뉜 구문은 HTML 라운드‑트립이 필요합니다.
- 모든 결과는
<name>_edited.<ext>형태로 출력 폴더 루트에 저장됩니다. 원본이 하위 폴더에 있더라도 마찬가지입니다. 파일이 겹치면 번호가 붙습니다(msa-northwind_edited (1).docx). 이름 충돌 가능성이 있을 때는outputName을 지정하세요. - 서버 26.10.0에서는 Word 문서의 편집 복사본이 푸터를 잃고, 콘텐츠 컨트롤이 평문 텍스트로 평탄화됩니다. 푸터에 옛 이름이 있는 문서는 반드시 확인하세요.
- 스프레드시트와 프레젠테이션은 각각 워크시트 또는 슬라이드당 한 번에 편집됩니다. 평가 모드에서는 처음 두 개만 편집 가능하며, 서버가 다음과 같이 알립니다: “Evaluation mode edits only the first 2 slides of a presentation; slide 3 is beyond them.”
- 평가 모드는 모든 출력에 배너 라인을 추가하고, 두 페이지를 초과하는 PDF는 거부됩니다.
FAQ
Word, Excel 및 PowerPoint에서 한 번에 텍스트를 교체할 수 있나요?
예. 에이전트는 파일당 동일한 도구를 호출하고, 워크북에는 worksheet, 프레젠테이션에는 slide 파라미터를 추가합니다.
어떤 파일이 변경됐는지 어떻게 알 수 있나요?
각 호출이 교체 개수를 반환하고, 매치가 없는 파일은 전혀 쓰이지 않습니다. 에이전트에게 파일별 표를 요청하면 됩니다.
원본 파일이 덮어쓰여지나요?
아니요. 각 편집은 새 파일을 만들고, 원본은 직접 교체할 때까지 그대로 유지됩니다.
더 깊이 파고들기
- 문서, 정식 사용 방법: How to find and replace text across a folder of documents without breaking the formatting
- 문서 허브: GroupDocs.Editor MCP Server
- GroupDocs.Editor MCP product page — VS Code와 Cursor용 원클릭 설치, 다른 모든 클라이언트용 설정
- 시작하기: Why an AI agent should not rewrite your document to change three words
- 관련: Fill Word forms from a spreadsheet with an AI agent, locally
- 관련: Edit one worksheet, keep the workbook: surgical edits with an HTML round-trip
- 관련: Edit a PDF with an AI agent? Turn it into Word first, locally
- 온프레미스 및 보안 모델: 3 architectures for AI document processing, and the one that keeps files inside your network
- 질문: GroupDocs Editor forum
- 소스: GroupDocs.Editor.Mcp on GitHub · NuGet package