md5sums 기능을 사용하고 싶습니다패키지 빌드새로운 것을 추적하지 마십시오해시 값업데이트할 때마다 pkgver 변수만 변경하면 내 패키지의 새 버전이 빌드됩니다.
md5
허용되는공식 웹 사이트내가 관심있는 프로젝트의 소스 아카이브 다운로드 범위 class
는md5sum
내가 아는 한해시 값항상 span
그 자체가 그 중 두 개 뒤에 있습니다. 어떻게 추출할 수 있습니까?class
md5sum
span
class
releasedate
a href
tar.xz
해시 값~에서웹사이트일반적으로 컴퓨터에 사전 설치된 도구를 호출할 수 있는 쉘 스크립트를 사용하십시오.아키텍처Linux엄격하게 포함되는 변수에 설치됩니다.해시 값?
답변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