파일 이름 바꾸기(항상 동일하지 않은 일부 문자 제거)

파일 이름 바꾸기(항상 동일하지 않은 일부 문자 제거)

다음과 같은 이름의 파일이 있습니다.

DA1_ATGCATG_L001_R1.fastq.gz
Oeu43_TCATGAC_L004_R2.fastq.gz

첫 번째 "_" 다음 부분을 제거하고 싶지만 이를 얻으려면 "_R"에 이름 끝을 유지해야 합니다.

DA1_R1.fastq.gz
Oeu43_R2.fastq.gz

어떻게 해야 하나요?

답변1

bash또는 POSIX 에서 sh:

for file in *.fastq.gz; do
    mv -- "$file" "${file%%_*}_${file##*_}"
done

답변2

그리고 zsh:

autoload zmv # best in ~/.zshrc
zmv '(*)_*(_R*)' '$1$2'

답변3

Perl 사용 rename( prenameUbuntu에서 명명됨)

prename 's/^([^_]*).*(_R.*)/$1$2/' *.fastq.gz

관련 정보