파일 이름에서 중복된 이름 제거

파일 이름에서 중복된 이름 제거

내 Linux 컴퓨터에는 다음과 같은 파일 이름을 가진 파일이 많이 있습니다.

Veillonella-sp.-AF13-2-AF13-2.Scaf1.faa
Weissella-cibaria-strain-AM27-24-AM27-24.Scaf1.faa
Streptococcus-salivarius-strain-AF24-6AC-AF24-6AC.Scaf1.faa

파일 이름의 일부가 반복됩니다. 나는 단지 독특한 이름을 갖고 싶다. 이 파일 이름을 편집하여 다음 내용만 포함하고 싶습니다.

Veillonella-sp.-AF13-2.faa
Weissella-cibaria-strain-AM27-24.faa
Streptococcus-salivarius-strain-AF24-6AC.faa

이 파일 이름을 편집하는 방법을 알려주실 수 있나요?

내 Linux 배포판은 CentOS입니다.

감사해요!

답변1

Perl을 사용하여 구현됨 rename:

rename -v 's/(-\w+?-\d+?)\1/$1/' *.faa

그러면 -word-digits현재 디렉터리에서 일치하는 파일 이름의 중복 항목이 제거됩니다.*.faa

-\w+?-\d+?, 즉 을 일치시킨 -word-digits다음 동일한 문자열을 다시 일치시켜 이를 수행합니다 . 이러한 일치 항목은 문자열의 첫 번째 인스턴스로만 대체됩니다.

답변2

rename 's/-2-AF13-2.Scaf1.//' *.faa

관련 정보