디렉토리의 여러 파일에서 접두사를 제거하는 방법

디렉토리의 여러 파일에서 접두사를 제거하는 방법

다음과 같은 이름을 가진 약 250개의 파일이 있습니다.

no_responseEvent_2002.02.07.03.15.56.970/       
no_responseEvent_2002.02.10.01.47.07.450/       
no_responseEvent_2002.02.13.14.18.46.00/

모든 파일 이름에서 "no_response"를 제거하고 싶습니다.
어떻게 해야 하나요?
for 루프가 작동할 수 있다는 것을 알고 있지만 구현 방법이 혼란스럽습니다.

답변1

나는 250개의 파일이 모두 같은 디렉토리에 있고 같은 이름 지정 패턴을 따른다고 가정합니다. 그렇다면 이렇게 할 수 있습니다.

for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done

시험

ls
no_responseEvent_2002.02.07.03.15.56.970   
no_responseEvent_2002.02.07.03.15.56.972
no_responseEvent_2002.02.07.03.15.56.971  
no_responseEvent_2002.02.07.03.15.56.973

이제 for루프를 실행한 후 얻는 결과는 다음과 같습니다.

remove=no_response
for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done
ls
Event_2002.02.07.03.15.56.970  
Event_2002.02.07.03.15.56.971  
Event_2002.02.07.03.15.56.972  
Event_2002.02.07.03.15.56.973

인용하다

http://www.commandlinefu.com/commands/view/2519/uniformly-Correct-filenames-in-a-directory

관련 정보