You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用Shell脚本对比两个CSV文件并逐行输出PASS/FAIL结果

解决方案:Shell脚本逐行对比两个CSV文件并输出结果

针对你要对比File1.csv和File2.csv并生成PASS/FAIL结果的需求,我整理了一个实用的Shell脚本方案,同时考虑了常见的边缘情况:

完整脚本示例

#!/bin/bash

# 配置文件路径
INPUT_FILE1="File1.csv"
INPUT_FILE2="File2.csv"
OUTPUT_RESULT="comparison_results.txt"

# 先检查输入文件是否存在
if [ ! -f "$INPUT_FILE1" ]; then
    echo "Error: 文件 $INPUT_FILE1 不存在,请检查路径!"
    exit 1
fi

if [ ! -f "$INPUT_FILE2" ]; then
    echo "Error: 文件 $INPUT_FILE2 不存在,请检查路径!"
    exit 1
fi

# 清空结果文件(如果已存在)
> "$OUTPUT_RESULT"

# 逐行合并并对比两个文件
paste "$INPUT_FILE1" "$INPUT_FILE2" | while IFS=$'\t' read -r line_from_file1 line_from_file2; do
    # 严格匹配行内容
    if [ "$line_from_file1" = "$line_from_file2" ]; then
        result_msg="PASS: 行内容匹配 - '$line_from_file1'"
    else
        result_msg="FAIL: 行内容不匹配 | File1: '$line_from_file1' | File2: '$line_from_file2'"
    fi
    # 同时输出到控制台和结果文件
    echo "$result_msg" | tee -a "$OUTPUT_RESULT"
done

# 额外检查两个文件的行数是否一致
count_file1=$(wc -l < "$INPUT_FILE1")
count_file2=$(wc -l < "$INPUT_FILE2")

if [ "$count_file1" -ne "$count_file2" ]; then
    warning_msg="警告:两个文件行数不匹配!File1有 $count_file1 行,File2有 $count_file2 行"
    echo "$warning_msg" | tee -a "$OUTPUT_RESULT"
fi

echo "对比任务完成,结果已保存到 $OUTPUT_RESULT"

关键功能说明

  • 文件存在性检查:避免因为文件路径错误导致脚本报错中断
  • paste命令合并行:将两个文件的对应行用制表符分隔,方便一次性读取两行内容
  • 逐行对比逻辑:用read命令分别读取两行内容,严格匹配后输出对应结果
  • 双输出机制:通过tee -a同时将结果打印到控制台和追加到结果文件,方便实时查看和后续复盘
  • 行数一致性校验:如果两个文件行数不同,会在结果末尾添加警告,避免遗漏对比

可选优化项

如果你的CSV有特殊场景,可以调整脚本:

  • 跳过表头:如果CSV第一行是表头不需要对比,把paste那行改成:
    tail -n +2 "$INPUT_FILE1" | paste - <(tail -n +2 "$INPUT_FILE2") | while ...
    
  • 忽略大小写对比:把匹配逻辑改成:
    if [ "$(echo "$line_from_file1" | tr '[:upper:]' '[:lower:]')" = "$(echo "$line_from_file2" | tr '[:upper:]' '[:lower:]')" ]; then
    
  • 处理含制表符的CSV行:如果你的CSV内容里有制表符,把paste的分隔符改成一个不会出现在内容里的字符(比如|),同时修改IFS:
    paste -d '|' "$INPUT_FILE1" "$INPUT_FILE2" | while IFS='|' read -r line_from_file1 line_from_file2; do
    

内容的提问来源于stack exchange,提问作者Nitesh S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:13:40