md5 해시 결과를 쉘에 파이프하는 방법

md5 해시 결과를 쉘에 파이프하는 방법

md5sum결과를 다른 명령으로 파이프하는 간단한 방법을 찾고 있습니다 . 이 같은:

$echo -n 'test' | md5sum | ...

내 문제는 md5sum문자열의 해시뿐만 아니라 입력이 표준 입력에서 왔음을 나타내는 하이픈도 출력한다는 것입니다. man 파일을 확인했는데 출력을 제어하는 ​​플래그를 찾지 못했습니다.

답변1

다음 명령을 사용할 수 있습니다.자르다;각 입력 라인에서 특정 범위의 문자/바이트를 잘라낼 수 있습니다. MD5 해시의 길이는 고정되어 있으므로(32자) 이 옵션을 사용하면 -c 1-32입력 줄의 처음 32자만 유지할 수 있습니다.

echo -n test | md5sum | cut -c 1-32

또는 각 공백에서 줄을 분할하고 첫 번째 필드만 출력하도록 지시할 수 있습니다 cut. (공백 문자 주위에 따옴표가 있음)

echo -n test | md5sum | cut -d " " -f 1

보다맨페이지 잘라내기더 많은 선택을 위해.

답변2

당신은 할 수 있습니다 cut:

echo -n 'test' | md5sum | cut -d' ' -f1

여기서 -d' '구분 기호로 공백을 선택하고 -f1첫 번째 필드(구분 기호 앞)를 요청합니다.

답변3

사용또한 잘 작동합니다:

echo -n 'test' | md5sum | awk '{print $1}'

또 다른 방법은 하위 문자열을 만드는 것입니다. md5 해시가 32자 문자열이라는 것을 알고 있으므로 다음을 사용할 수 있습니다.

HASH=$(echo -n 'test' | md5sum -) && echo ${HASH:0:32}

이것은 단지 문자열 조작이므로 옵션이 있습니다!

관련 정보