GDC, MD5 확인하기

Shell script를 이용하여 MD5 checksum 확인하려고 한다. GDC(genomic data center)에서 받은 파일은 십중팔구 TSV 포맷이다.

CSV와는 달리 TSV는 IFS에 읽을 때 $’\t’를 이용한다.

md5sum으로 확인하면 hash 값과 파일 이름이 나오는데 우리는 hash 값만 필요하므로 awk를 이용한다.

#! /bin/bash
INPUT=/home/byun1114/nas/GDC_SVS/gdc_manifest_20200909_050711.txt
while IFS=$'\t' read id filename md5 size state
do
        if [ "${id}" != "id" ]; then
        md5_check=`md5sum ${filename} | awk '{ print $1 }'`
                if [ ${md5_check} = ${md5} ]; then
                echo "${filename} is passed"
                else
                echo "${filename} is not passed"
                fi
        fi
done < $INPUT

이 방법도 있을 것이고, 모든 파일에 대하여 md5 hash 값을 구한 뒤에 각각을 비교하는 방법도 있을 것 같다.