파일명의 날짜를 개별적으로 변경해야 합니다.

파일명의 날짜를 개별적으로 변경해야 합니다.

날짜를 기준으로 파일을 나열하고 디렉토리에 있는 파일의 날짜를 개별적으로 변경하고 싶습니다.

현재 파일:

abc051217.log

xyz051217.log

ccc051217.log

ddd051217.log

위에서는 아래와 같이 날짜로 이름을 바꿔야 하는 파일만 선택하고 싶습니다.

이후 파일:

abc021217.log

xyz021217.log

ccc021217.log

ddd021217.log

해결책이 있나요?

답변1

mmv. 을 사용하면 mmv표준 쉘 패턴을 사용하여 "?" 및 "*"를 사용하여 "#" + 숫자(1부터 시작)로 인용된 0개 이상의 문자를 일치시킬 수 있습니다.

따라서 귀하의 사용 사례에서

mmv -n '*??????.log' '#102#4#5#6#7.log'

이 옵션 -n은 시험 실행이므로 mmv실제로 파일을 삭제하지 않고 수행할 작업만 인쇄합니다. 실제로 원하는 효과가 나타나는지 확인한 후 -n.

답변2

이름을 바꾸려는 모든 파일을 test.txt test.txt에 넣으십시오.

abc051217.log
xyz051217.log
ccc051217.log
ddd051217.log

요구 사항에 따라 이름을 바꾸려면 아래 코드를 사용하십시오.

암호.


i=021217;sed '/^$/d' test.txt|awk -v i="$i"  '{print "mv" " " $1 " " substr($1,1,3)i".log"}'  | sh

산출

abc021217.log
xyz021217.log
ccc021217.log
ddd021217.log

관련 정보