728x90
특정 폴더 내에 있던 모든 파일들의 이름을 한번에 수정을 해야 했는데 코드를 짜서 실행 시키려니 더 좋은 방법이 없을까 알아보다가 rename 명령어를 알게 되었다.
# ubuntu
rename 's/old_string//g' *.txt # old_string을 지우는 명령어
rename 's/old_string/new_string/g' *.txt # old_string 대신 new_string으로 대체하는 명령어
ubuntu에서는 rename 명령어를 사용해서 터미널 상에서 현재 폴더에 있는 모든 파일들의 파일명에서 특정 문자를 삭제하거나 새로운 문자로 대체하는 등 수정할 수 있다.
윈도우에서도 동일한 작업을 하고 싶었는데 powershell에서는 rename 명령어가 먹히지 않았다.
# powershell
Get-ChildItem -Path . -Filter "*old_string*.txt" | ForEach-Object {
$newName = $_.Name -replace "old_string", ""
Rename-Item -Path $_.FullName -NewName $newName
}
그래서 위와 같이 현재 디렉토리에서 특정 패턴에 맞는 파일들을 찾고 해당 파일의 이름에서 특정 문자를 제거하고 이름을 변경하는 작업을 수행하도록 해 주었다.
728x90