MST

星途 面试题库

面试题:Bash文本文件批量校验中md5sum与sha256sum的灵活运用

有一个目录,里面包含大量文本文件。编写一个Bash脚本,使用md5sum和sha256sum分别对目录下所有文本文件进行校验和计算,并将每个文件的文件名、md5校验和、sha256校验和整理成一个表格形式输出到终端,同时,要统计出两种校验和计算失败的文件数量并输出。
35.3万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

md5_fail_count=0
sha256_fail_count=0

echo "文件名\tMD5校验和\tSHA256校验和"

for file in $(find . -type f -name "*.txt"); do
    md5sum_result=$(md5sum "$file" 2>/dev/null)
    if [ $? -ne 0 ]; then
        md5sum_result="计算失败"
        ((md5_fail_count++))
    else
        md5sum_result=$(echo "$md5sum_result" | awk '{print $1}')
    fi

    sha256sum_result=$(sha256sum "$file" 2>/dev/null)
    if [ $? -ne 0 ]; then
        sha256sum_result="计算失败"
        ((sha256_fail_count++))
    else
        sha256sum_result=$(echo "$sha256sum_result" | awk '{print $1}')
    fi

    file_name=$(basename "$file")
    echo "$file_name\t$md5sum_result\t$sha256sum_result"
done

echo -e "\nMD5校验和计算失败的文件数量: $md5_fail_count"
echo "SHA256校验和计算失败的文件数量: $sha256_fail_count"