BASIC을 포함하는 동적으로 생성된 파일의 이름 바꾸기

BASIC을 포함하는 동적으로 생성된 파일의 이름 바꾸기

exaxt 이름은 모르지만 항상 BASIC이라는 단어가 포함된 파일의 이름을 바꾸려면 mv 쉘 명령의 이름 바꾸기를 어떻게 사용할 수 있습니까?

rename Ex2WebR1_0WEBSHOP01_005443_B_BASIC.XML BASIC.XML

이런 식으로 시도했지만 작동하지 않습니다

mv 's/.*_BASIC/BASIC/g' BASIC.*

당신의 도움을 주셔서 감사합니다

답변1

현재 디렉토리에 그러한 파일이 하나만 있다고 가정하면 다음과 같습니다.

mv -- *_BASIC.XML BASIC.XML

절대 파싱하지 마세요산출

답변2

정규식 시도가 올바른 방향으로 진행되고 있으며 다음을 사용하는 경우 약간의 변경이 필요합니다 rename.

rename 's/.*_BASIC/BASIC/g' *_BASIC*

이는 배포판에 호환 가능한 버전이 설치되어 있다고 가정합니다 rename(내 경험에 따르면 Red Hat 및 관련 배포판은 그렇지 않은 경우가 많습니다).

또한 동일한 확장자를 가진 일치하는 파일이 여러 개 없어 이름 충돌이 발생할 수 있다고 가정합니다.

이 변형은 확장자가 다른 일치하는 파일이 여러 개 있고 한 번의 작업으로 이름을 바꾸려는 경우 유용합니다. 그렇지 않으면 다음을 사용하는 것이 좋습니다.https://unix.stackexchange.com/a/590037/40482

관련 정보