![이름 목록을 사용하여 여러 파일의 이름 바꾸기](https://linux55.com/image/181569/%EC%9D%B4%EB%A6%84%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%9D%B4%EB%A6%84%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
이름 목록을 기반으로 번호가 매겨진 여러 파일의 이름을 바꾸려고 합니다.
예:
1.pdf, 2.pdf, …, n.pdf
names.txt
한 줄에 값이 있는 이라는 파일도 있습니다 .
Fabio
Joao
n-name
그래서 우리는 가질 것이다
1.pdf
→Fabio.pdf
2.pdf
→Joao.pdf
n.pdf
→n-name.pdf
이를 달성하는 방법에 대한 아이디어가 있습니까?
답변1
파일이 실제로 "lineNumber.pdf"이면 이 작업을 쉽게 수행할 수 있습니다. 셸에서:
c=0
while IFS= read -r name; do
((c++))
echo mv -- $c.pdf "$name.pdf"
done < names.txt
원하는 대로 작동하는지 확인한 후 명령 echo
에서 제거하세요.mv
파일이 많으면 Perl에서 수행하는 것이 훨씬 더 빠릅니다.
perl -lne 'rename("$..pdf","$_.pdf")' names.txt