![파일 이름 집합의 문자를 바꾸는 방법은 무엇입니까? [복사]](https://linux55.com/image/102953/%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%20%EC%A7%91%ED%95%A9%EC%9D%98%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
다음과 같은 이미지 세트가 있습니다.
01-12_13:20:12_1366x768.png 01-12_13:20:46_1366x768.png 01-12_13:21:01_1366x768.png 01-12_13:21:06_1366x768.png
01-12_13:20:40_1366x768.png 01-12_13:20:47_1366x768.png 01-12_13:21:02_1366x768.png 01-12_13:21:07_1366x768.png
01-12_13:20:42_1366x768.png 01-12_13:20:49_1366x768.png 01-12_13:21:03_1366x768.png 01-12_13:21:08_1366x768.png
01-12_13:20:44_1366x768.png 01-12_13:20:59_1366x768.png 01-12_13:21:04_1366x768.png 01-12_13:21:10_1366x768.png
01-12_13:20:45_1366x768.png 01-12_13:21:00_1366x768.png 01-12_13:21:05_1366x768.png
:
각각 을 .bash 명령으로 교체해야 합니다 _
. 어떻게 해야 합니까?
(note : i love when everything is compact and one-lined)
답변1
간단한 for 루프, glob 및 매개변수 확장을 사용하여 이를 달성할 수 있습니다.
for f in *:*.png; do mv -- "$f" "${f//:/_}"; done
답변2
for 루프가 가능한 솔루션이지만 저는 이를 선호합니다 rename
.
rename "s/:/_/g" *
이 도구는 주어진 정규식 규칙에 따라 여러 파일의 이름을 바꿉니다.