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 값을 구한 뒤에 각각을 비교하는 방법도 있을 것 같다.