아래의 쉘 스크립트를 개발하여 파일 이름의 중복 된 부분을 찾아서 삭제했습니다. 마찬가지로 Perl 스크립트 텍스트 처리에는 시간이 덜 걸리기 때문에 Perl 스크립트를 준비해야합니다.중복 된 파일 이름에 Perl 스크립트 도움말이 필요합니다
#!/bin/bash
for i in `ls -t *xml|awk 'BEGIN{FS="_"}{if (++dup[$1] >= 2) print}'`;
do
rm $i
done
내가
File 1: AAA_555_0000
File 2: AAAA_123_123
File 3: AAAA_452_452 [latest]
File 4: BBB_555_0000
File 5: BBB_555_555
File 6: BBB_999_999 [latest]
File 7: CCC_555_0000
File 8: CCC_000_000
File 9: CCC_000_111 [latest]
펄 스크립트는 모든 파일 이름 패턴에서 최신 파일을 선택하는 예를 들어 단지 최근 수정 된 파일 이름 패턴을 가지고 같은 방법으로 내 펄 스크립트 내 코드를 준비해야는 (부품을 의미한다 파일 이름)을 비교하고 중복을 삭제해야합니다. 예를 들어, 스크립트는 AAA 파일 이름 패턴에서 최신 파일을 선택해야하며 패턴이 발견되면 삭제해야하는 다른 AAA 패턴과 비교해야합니다. 결국 모든 파일 이름 패턴의 최신 파일 만 남아 있어야합니다.
이 논리를 도와 주시면 감사하겠습니다.
감사합니다.
"_the 파일명 패턴 _"은 무엇입니까? 처음으로 3 개의 동등한 문자? 아니면 'A'로 시작하는 사람들, 'B'로 시작하는 사람들 ...? 설명을 추가하기 위해 질문을 수정하십시오. – zdim
답장을 보내 셨습니다. 그게 내가 awk에서 필드 구분 기호를 사용하여 쉘 스크립트에서 한 일은 파일 이름의 일부가되고 다른 파일 이름과 비교됩니다. – misterbean2
"중복 부품"이란 동일 또는 일부 부품의 앞부분을 의미합니까? "AAA_555_0000", "BBB_555_0000"및 "CCC_555_0000"에는 중복 부품이 있습니다. – shawnhcorey