http 원격 MD5 해시 사용

http 원격 MD5 해시 사용

md5sums 기능을 사용하고 싶습니다새로운 것을 추적하지 마십시오업데이트할 때마다 pkgver 변수만 변경하면 내 패키지의 새 버전이 빌드됩니다.

md5허용되는공식 웹 사이트내가 관심있는 프로젝트의 소스 아카이브 다운로드 범위 classmd5sum

내가 아는 한항상 span그 자체가 그 중 두 개 뒤에 있습니다. 어떻게 추출할 수 있습니까?class md5sumspanclass releasedatea hreftar.xz~에서웹사이트일반적으로 컴퓨터에 사전 설치된 도구를 호출할 수 있는 쉘 스크립트를 사용하십시오.엄격하게 포함되는 변수에 설치됩니다.?

답변1

페이지에서 해시를 제거하려는 경우 다음과 같은 방법이 작동합니다. 이것은 레이아웃이 변경되면 깨질 수 있으므로 일회성 사용을 위해 작성하는 일종의 단일 라이너입니다.

hashsum=$(curl http://php.net/downloads.php |
 grep -A1 -F ">php-${pkgver}.tar.xz<" |
 sed 1d |
 tr '>' '<' |
 cut -d '<' -f3 )

이것이 매우 유연하지 못한 접근 방식인 이유를 이해하려면 각 단계의 결과를 살펴보는 것이 도움이 될 수 있습니다.

  • curl페이지를 가져와 표준 출력으로 보냅니다. ( curl사용 가능한 제품이 없더라도 wget -O -괜찮습니다.)

    출력에는 다음이 포함됩니다.

    ...
    <ul>
              <li>
          <a href="/get/php-7.0.7.tar.bz2/from/a/mirror">php-7.0.7.tar.bz2</a> <a href="/get/php-7.0.7.tar.bz2.asc/from/a/mirror">(sig)</a> [13,776Kb]          <span class="releasedate">26 May 2016</span>
          <span class="md5sum">cc231de15146ca14a69610f695995ab8</span>
          <span class="sha256">474f2925c4782b94016e3afbb17b14ff9cc6f4fdb6f6e231b36a378bb18a3d1a</span>
                  </li>
              <li>
          <a href="/get/php-7.0.7.tar.gz/from/a/mirror">php-7.0.7.tar.gz</a> <a href="/get/php-7.0.7.tar.gz.asc/from/a/mirror">(sig)</a> [17,792Kb]          <span class="releasedate">26 May 2016</span>
          <span class="md5sum">197ec66d134da8968ddd0b89f1cfac2a</span>
          <span class="sha256">66282ff4a9f88fe9607d9574e15bf335885b964245591a1740adb3f79c514a67</span>
                  </li>
              <li>
          <a href="/get/php-7.0.7.tar.xz/from/a/mirror">php-7.0.7.tar.xz</a> <a href="/get/php-7.0.7.tar.xz.asc/from/a/mirror">(sig)</a> [11,219Kb]          <span class="releasedate">26 May 2016</span>
          <span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span>
          <span class="sha256">9cc64a7459242c79c10e79d74feaf5bae3541f604966ceb600c3d2e8f5fe4794</span>
                  </li>
            <li>
        <a href="http://windows.php.net/download#php-7.0">
          Windows downloads
        </a>
      </li>
    </ul>
    ...
    
  • grep -A1패턴(원하는 소스 파일의 이름)이 포함된 줄과 그 뒤에 한 줄을 반환합니다.

      <a href="/get/php-7.0.7.tar.xz/from/a/mirror">php-7.0.7.tar.xz</a> <a href="/get/php-7.0.7.tar.xz.asc/from/a/mirror">(sig)</a> [11,219Kb]          <span class="releasedate">26 May 2016</span>
      <span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span>
    
  • 두 번째 행에만 관심이 있으므로 sed 1d첫 번째 행을 삭제합니다. (md5sum인지 확인하려면 대신 md5sum을 사용하십시오 grep 'class="md5sum"'.)

      <span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span>
    
  • tr명령은 모두 >가 됩니다 . 이 명령 자체는 별로 유용하지 않지만 다음 줄을 사용할 수 있는 것으로 <바꿉니다 .cut

      <span class="md5sum"<75f8d1693a470cefe2a50abd283eb291</span<
    
  • 마지막으로 이러한 s(이전 s 포함 )를 구분 기호로 cut처리 하고 세 번째 항목을 추출합니다. 해시시:<>

    75f8d1693a470cefe2a50abd283eb291
    

관련 정보