내 유닉스 디렉토리에는 약 5000개의 .xml 파일이 있습니다. .xml 확장자 앞에 있는 모든 파일 이름에 Hist 확장자를 추가하고 싶습니다. 예를 들어 파일이 ABCD.xml인 경우 이름을 ABCDHist.xml로 바꾸고 싶습니다. 나는 디렉토리에 있는 모든 5000개의 파일에 대해 이 작업을 수행하고 싶습니다. 이를 수행할 수 있는 한 줄 명령이 있습니까?
편집하다
저는 unix(aix) 시스템에서 이 작업을 수행하고 있으며 제가 사용하고 있는 도구는 Attachmate Reflective SSH 클라이언트입니다. 그곳에서는 perl 명령을 실행할 수 없는 것 같습니다.
답변1
Perl을 사용하여 이름 바꾸기:
rename -n 's/\.xml$/Hist.xml/' *.xml
(테스트가 정상이면 -n 스위치를 제거하십시오.)
이 작업을 수행할 수도 있고 수행하지 못할 수도 있는 같은 이름의 다른 도구가 있으므로 주의하세요.
다음 명령을 실행하면 ( GNU
)
$ file "$(readlink -f "$(type -p rename)")"
이런 결과가 나왔어요
.../rename: Perl script, ASCII text executable
다음은 포함되지 않습니다:
ELF
그렇다면 이것이 올바른 도구인 것 같습니다 =)
그렇지 않은 경우 이를 기본값으로 설정하고(일반적으로 이미 적용되어 있음) Debian
다음과 같이 파생시킵니다 Ubuntu
.
$ sudo update-alternatives --set rename /path/to/rename
(명령어의 경로로 바꿉니다 /path/to/rename
.perl's rename
이 명령이 없으면 패키지 관리자를 검색하여 설치하거나수동으로 수행
마지막으로 이 도구는 원래 Perl의 아버지인 Larry Wall이 작성했습니다.