파일 이름을 잘라야 함

파일 이름을 잘라야 함

여기에 이미지 설명을 입력하세요.UNIX 디렉토리에 일부 파일이 있고 고유 번호로 시작하는 파일이 있습니다. 파일 이름에서 "-"가 뒤에 오는 고유 ID를 제거해야 하며 일반 파일이 필요합니다.

예: 32456113-report.pdf

데이터베이스의 필수 파일 이름: report.pdf

다양한 확장자(.pdf, .doc, .xls, .txt)를 가진 파일 이름이 있지만 앞에 같은 숫자가 있습니다.

저는 Winscp를 사용하여 데이터를 테스트하거나 보고 Oracle 애플리케이션에서 호스트 동시 프로그램으로 등록하여 셸 스크립트를 실행하고 있습니다.

답변1

당신이 원하는 것이 무엇인지 완전히 이해하지는 못하지만 간단한 bash 스크립트는 다음과 같을 것이라고 믿습니다.

for f in * ; do mv "$f" "$(echo "$f" | cut -d- -f2)"; done

에코가 마음에 들지 않으면 말도 안되는 소리는 그만하세요. Bash에서 문자열 규칙을 확인하는 데 도움을 드릴 수 있습니다.

답변2

for f in *; do 
    regular="${f#*-}"
    echo "$f => $regular"
done

이 매개변수 확장( ${f#*-})은 변수 값의 시작 부분에서 하이픈으로 끝나는 가장 짧은 문자열을 제거합니다(참조:수동). 그래서:

$ f=32456113-summary-report.doc
$ echo "$f => ${f#*-}"
32456113-summary-report.doc => summary-report.doc

답변3

당신은 그것을 사용할 수 있습니다 perl-rename.

perl-rename 's/[0-9]*-//' <files>

OS/배포판에 따라 이 유틸리티는 으로 호출될 수 있습니다 . 안전을 위해 rename실제로 파일 이름을 바꾸기 전에 -n플래그를 사용하여 perl-rename시험 실행을 수행하세요.

관련 정보