Windows 10에서 여러 텍스트 파일의 단어를 바꾸는 방법

텍스트 편집기, 예를 들어 메모장이나 메모장++은 자막 파일, 로그 기록, 배치 파일, 파워쉘 스크립트 등 다양한 형태의 파일을 제작하는 데 활용됩니다. 또한 이러한 편집기는 이미 만들어진 파일을 수정하는 데도 사용되죠. 만약 여러 개의 텍스트 파일, 특히 TXT 확장자를 가진 파일에서 특정 단어나 구문을 변경해야 한다면, 파워쉘 스크립트를 활용하여 효율적으로 처리할 수 있습니다. 스크립트를 사용하면 각 파일을 일일이 열어서 수정할 필요 없이, 한 번에 여러 파일을 처리할 수 있어 편리합니다. 이 스크립트는 텍스트 편집기로 생성 가능한 다양한 파일 형식에 모두 적용할 수 있습니다. 이제 여러 텍스트 파일 내에서 특정 단어를 변경하는 방법에 대해 알아보겠습니다.

텍스트 파일 내 단어 일괄 변경하기

가장 먼저 해야 할 일은 모든 텍스트 파일을 하나의 폴더에 모아두는 것입니다. 스크립트는 실행 시 시스템 전체가 아닌 특정 디렉토리만 검색하므로, 파일들이 한 곳에 있어야 합니다.

새로운 메모장 파일을 열고 다음 코드를 붙여넣으세요.

Get-ChildItem 'Path-to-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Original-Word', 'New-Word' }) |
Set-Content $_
}

위의 스크립트는 여러분의 상황에 맞게 수정해야 합니다. 먼저 ‘Path-to-files’ 부분을 모든 텍스트 파일이 있는 실제 폴더 경로로 바꿔주세요. 다음으로, ‘Original-Word’ 부분을 변경하고자 하는 단어로 변경합니다. 마지막으로 ‘New-Word’ 부분을 대체할 새로운 단어로 변경합니다. 예를 들어 ‘포스트’라는 단어가 포함된 여러 텍스트 파일이 있고, ‘Post’를 ‘Article’로 바꾸고 싶다면 스크립트는 다음과 같이 변경됩니다.

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Post', 'Article' }) |
Set-Content $_
}

스크립트 수정이 완료되었다면, .ps1 확장자로 저장합니다. 메모장의 ‘다른 이름으로 저장’ 대화 상자에서 파일 형식을 ‘텍스트 파일’에서 ‘모든 파일’로 변경하는 것을 잊지 마세요. 스크립트를 실행하면 단어 변경 작업이 시작됩니다.

XML이나 LOG 파일과 같은 다른 형식의 파일에 이 스크립트를 적용하고 싶다면, 첫 번째 줄에서 파일 확장자를 수정하면 됩니다. 예를 들어,

다음 코드를

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'

다음과 같이 변경합니다.

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'

이 스크립트를 사용할 때 주의해야 할 점이 있습니다. 이 스크립트는 정확하게 단어 단위로 매칭하지 않습니다. 만약 모든 ‘the’를 ‘a’로 바꾸려고 하면, ‘these’나 ‘there’와 같이 ‘the’로 시작하는 단어의 앞부분도 함께 바뀌게 됩니다. 이것이 이 스크립트의 단점입니다. 이러한 문제를 피하려면, ‘단어 단위 일치’ 옵션을 제공하는 메모장++과 같은 고급 텍스트 편집기를 사용하는 것이 좋습니다.