파일 이름 끝의 숫자를 제거하는 명령 수정

파일 이름 끝의 숫자를 제거하는 명령 수정

모두,

나는 파일 이름에서 패턴을 일괄 제거하기 위해 for 명령을 사용하여 장난을 쳤습니다.

파일 이름 예:

:Common:CBE.key_44643_1

다음 명령을 사용하여 :Common: 부분을 제거할 수 있습니다.

for f in *; do mv "$f" "${f#:Common:}";done

평생 동안 .key 오른쪽에 있는 모든 항목을 삭제하라는 명령을 받을 수 없습니다. 아래는 내 시도입니다

for f in *; do mv "$f" "$(?<=crt)(?s)(.*$);done

명령이 실행되지만 파일은 변경되지 않습니다. 저는 이것을 Mac에서 실행하고 있습니다.

답변1

쉘을 사용하여 이를 수행하는 한 가지 방법은 다음과 같습니다.

for f in *; do
    mv -- "$f" "${f%.key*}.key"
done

답변2

파일 이름에 개행이나 백슬래시가 포함되어 있지 않다고 가정합니다.

for f in ./*
do
  mv "$f" "$(echo "$f" | sed 's/key_.*$/key/')
done

관련 정보