모두,
나는 파일 이름에서 패턴을 일괄 제거하기 위해 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