특정 형식으로 일부 파일 이름 바꾸기

특정 형식으로 일부 파일 이름 바꾸기

일부 파일의 이름을 바꾸고 싶습니다. 다음 형식의 파일이 많이 있습니다: ?????.pdb.

파일 이름은 5자리(숫자 및 문자)로 구성되며 새 이름은 다음과 같습니다 ????_biounit?.pdb. 이전 이름의 처음 4자는 유지되어야 하며 다섯 번째 문자는 "biounits"라는 단어 뒤에 삽입되어야 합니다.

몇 가지 예:

  • 원본 파일:

    1b471.pdb 1caz4.pdb 1ca93.pdb
    
  • 새로운 파일:

    1b47_biounit1.pdb 1caz_biounit4.pdb 1ca9_biounit3.pdb
    

이 작업을 수행하기 위해 comand mv를 사용해 보았지만 처음 4자와 다섯 번째 문자를 구별할 수 없습니다. 누구든지 나를 도와줄 수 있나요?

답변1

쉘 루프를 사용하십시오:

for f in ?????.pdb; do mv "$f" "${f%?.pdb}_biounit${f#????}"; done
  • ${f%?.pdb}?.pdb파일 이름 끝에서 제거됩니다.
  • ${f#????}????파일 이름의 시작 부분부터 제거합니다.

답변2

Perl 이름 바꾸기 도구를 사용하십시오.

rename -n 's/(....)(.)/$1_biounit$2/' ?????.pdb

-n출력이 만족스러우면 삭제하세요.

관련 정보