내 디렉토리에 다음 파일이 있습니다.
mmm.1
mmm.2
mmm.3
.
.
.
.
.
이름을 다음과 같이 바꾸고 싶습니다.
mmm.31
mmm.32
mmm.33
.
.
.
각 파일 이름의 뒤에 오는 숫자에 숫자 "30"을 추가하기만 하면 됩니다.
답변1
편집됨: 최대 300개의 파일을 작업 중이라고 알려 주신 후 답변을 수정해야 합니다. 아래 편집된 답변에서 숫자 300을 기존 파일의 정확한 캡 번호로 바꾸십시오.
for file in mmm.{300..1} ; do mv "${file}" "${file%.*}.$((30+${file#*.}))" ; done
bash
이 답변은 기본 기능을 사용하여 모든 작업을 수행 bash
하고 외부 프로그램이나 하위 프로세스 시작이 필요하지 않기 때문에 효과적입니다 .
${file%.*}
마침표 앞의 파일 이름 접두사를 반환합니다.`$((..))는 수학 연산을 위한 bash 관용구입니다.
${file#*.}
마침표 뒤에 파일 이름 접미사를 반환합니다. 파일 이름에 마침표가 여러 개 포함될 수 있다는 우려가 있는 경우#
에는##
.
man bash
자세한 내용과 기타 매우 멋진 기본 기능을 보려면 리소스를 참조하세요 .