파일 이름없이 md5sum을 사용하여 해시 값만 가져옵니다.
md5sum을 사용하여 파일의 해시 값을 생성합니다. 그러나 파일 이름이 아닌 해시 값만 수신하면됩니다.
md5=`md5sum ${my_iso_file}`
echo ${md5}
3abb17b66815bc7946cefe727737d295 ./iso/somefile.iso
파일 이름을 '스트립'하고 값만 유지하려면 어떻게해야합니까?
또 다른 방법 :)
md5=`md5sum ${my_iso_file} | awk '{ print $1 }'`
간단한 배열 할당이 작동합니다 ... 배열의 첫 번째 요소 는 인덱스 없이 bash
만 처리 할 수 있습니다 . 즉, md5sum의 32 자만 포함합니다.name
[0]
$md5
md5=($(md5sum file))
echo $md5
# 53c8fdfcbb60cf8e1a1ee90601cc8fe2
cut
공백으로 줄을 나누고 첫 번째 필드 만 반환 하는 데 사용할 수 있습니다 .
md5=$(md5sum "$my_iso_file" | cut -d ' ' -f 1)
Mac OS X의 경우 :
md5 -q file
md5="$(md5sum "${my_iso_file}")"
md5="${md5%% *}" # remove the first space and everything after it
echo "${md5}"
일방 통행:
set -- $(md5sum $file)
md5=$1
또 다른 방법:
md5=$(md5sum $file | while read sum file; do echo $sum; done)
또 다른 방법:
md5=$(set -- $(md5sum $file); echo $1)
(백 슬래시가 너무 용감하고 훌륭하지 않으면 백틱으로 시도하지 마십시오.)
다른 솔루션에 비해이 솔루션의 장점은 단지 호출하는 것입니다 md5sum
오히려 같은 다른 프로그램보다, 쉘 awk
또는 sed
. 이것이 실제로 중요한지 여부는 별도의 질문입니다. 당신은 아마 그 차이를 알아 차리기 힘들 것입니다.
다른 방법은 다음과 같습니다.
md5sum filename |cut -f 1 -d " "
잘라내 기는 각 공간으로 줄을 나누고 첫 번째 필드 만 반환합니다.
인쇄해야하고 개행이 필요하지 않은 경우 다음을 사용할 수 있습니다.
printf $(md5sum filename)
md5=$(md5sum < $file | tr -d ' -')
md5=`md5sum ${my_iso_file} | cut -b-32`
md5sum
파일 이름에 백 슬래시가 있으면 해시 앞에 백 슬래시를 넣습니다. 첫 32 자 또는 첫 공백 앞의 항목은 적절한 해시가 아닐 수 있습니다. 표준 입력 (파일 이름은 그냥-)을 사용할 때 발생하지 않으므로 픽셀 비트의 대답 은 효과가 있지만 많은 다른 사람들 은와 같은 것을 추가해야합니다 | tail -c 32
.
글쎄, 오늘 같은 문제가 있었지만 find
명령을 실행할 때 파일 md5 해시를 얻으려고했습니다 . 가장 투표가 많은 질문이 있고 md5
find 명령을 실행하기 위해 호출 된 함수로 래핑했습니다 . 나를위한 임무는 폴더의 모든 파일에 대한 해시를 계산하고로 출력하는 것이 었습니다 hash:filename
.
md5() { md5sum $1 | awk '{ printf "%s",$1 }'; }
export -f md5
find -type f -exec bash -c 'md5 "$0"' {} \; -exec echo -n ':' \; -print
그래서 여기에서 그리고 조각에서 find -exec 셸 함수를 사용하여 조각을 얻었 습니까?
완전성을 위해 정규식 및 캡처 그룹을 사용하는 sed를 사용하는 방법 :
md5=$(md5sum "${my_iso_file}" | sed -r 's:\\*([^ ]*).*:\1:')
정규 표현식은 공간에 도달 할 때까지 그룹의 모든 것을 캡처합니다. 캡처 그룹을 작동 시키려면 sed에있는 모든 것을 캡처해야합니다. (sed 및 caputer 그룹에 대한 자세한 내용은 https://stackoverflow.com/a/2778096/10926293 )
sed의 구분 기호로 콜론을 사용합니다. 콜론은 파일 경로에서 유효하지 않으므로 슬래시를 피할 필요가 없기 때문입니다. 파일 경로.
또 다른 방법:
md5=$(md5sum ${my_iso_file} | sed '/ .*//' )
md5=$(md5sum < index.html | head -c -4)
참고 URL : https://stackoverflow.com/questions/3679296/only-get-hash-value-using-md5sum-without-filename
'IT박스' 카테고리의 다른 글
Angular 2 / Typescript에서 전역 변수를 어떻게 선언 할 수 있습니까? (0) | 2020.06.05 |
---|---|
파이썬으로 소수점 이하 2 자리를 반올림하는 방법은 무엇입니까? (0) | 2020.06.05 |
비활성화 된 버튼에서 부트 스트랩 툴팁을 활성화하는 방법은 무엇입니까? (0) | 2020.06.05 |
Linux에서 Pillow (Python 모듈) 설치 중 실패 (0) | 2020.06.05 |
모의 객체의 목적은 무엇입니까? (0) | 2020.06.05 |