htmldiff를 사용한 파일 공유 접두사 일괄 비교

htmldiff를 사용한 파일 공유 접두사 일괄 비교

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

something08-a-v1.html
something08-b-v2.html
something09-a-v1.html
something09-b-v2.html
somethingelse10-a-v1.html
somethingelse10-b-v2.html

-a-이 파일의 이전 버전입니다. -b-최신 버전입니다. 그래서 매번 비교할 파일이 두 개 있습니다.

나는 그것들을 결합하고 싶다htmldiff.

htmldiff -a something08-a-something.html something08-b-something.html -o something08-diff.html

이를 어떻게 자동화할 수 있나요?

를 사용하는 것이 더 확실한 방법이라고 생각하는데 find.-[/b]a-v[1/2]

답변1

파일 이름 패턴이 이미 있으므로 하나는 이고 -a-다른 하나는 이라는 것을 알 수 -b-있으며 표시된 파일 쌍만 있다고 가정하면 다음을 사용할 수 있습니다.

$ for file in *-a-*; do 
    prefix=${file%%-*}
    htmldiff -a "$prefix"-a-* -b "$prefix"-b-* -o "$prefix"-diff.html
 done

이 구문은 ${var%%pattern}변수 값 끝에서 가장 긴 일치 항목을 제거합니다. pattern여기서는 접두사만 남기고 -*처음부터 끝까지 모든 것을 제거하는 패턴입니다.-

에 따르면 참고하시기 바랍니다.GitHub 페이지, 옵션 htmldiff이 없습니다 . 옵션은 다음과 같습니다.-b-a

-a --accurate-mode 위험 모드 대신 정확한 모드를 사용합니다.

그래서 나는 당신의 명령을 의심합니다실제로당신이 원하는 것은 :

$ for file in *-a-*; do 
    prefix=${file%%-*}
    htmldiff -a "$prefix"-a-* "$prefix"-b-* -o "$prefix"-diff.html
 done

또는:

$ for file in *-a-*; do 
    prefix=${file%%-*}
    htmldiff "$prefix"-a-* "$prefix"-b-* -o "$prefix"-diff.html
 done

답변2

파일 이름에 각 접두사가 있는 두 개의 파일만 있다고 가정하면 다음과 같이 작동합니다.

htmldiff prefix-*.html -o prefix-diff.html

관련 정보