如果只有一个总量的 OK 文件,可以在脚本中使用一个变量来存储该文件的路径,并在处理每个文件夹时进行数据量对比。以下是示例脚本:
#!/bin/bash
# 合并后的文件输出路径
output_file="/path/to/output.txt"
# 存放数据量对比结果的文件
result_file="/path/to/result.txt"
# 要合并的日期范围,格式为 YYYY-MM-DD
start_date="2021-10-01"
end_date="2021-10-07"
# OK 文件路径
ok_file="/path/to/OK.txt"
# 初始化总量变量
total_lines=$(wc -l < "$ok_file")
# 循环遍历指定日期范围内的文件夹
current_date="$start_date"
while [[ "$current_date" != "$end_date" ]]; do
# 当前日期的文件夹路径
folder_path="/path/to/folders/$current_date"
# 检查文件夹是否存在
if [[ -d "$folder_path" ]]; then
# 合并文件夹下的所有文件
cat "$folder_path"/*.txt >> "$output_file"
# 数据量对比
merged_lines=$(wc -l < "$output_file")
echo "日期 $current_date:OK 文件有 $total_lines 行,合并文件有 $merged_lines 行" >> "$result_file"
else
echo "日期 $current_date:找不到文件夹" >> "$result_file"
fi
# 增加一天,进入下一个日期
current_date=$(date -I -d "$current_date + 1 day")
done
在上述示例中,ok_file
变量存储了 OK 文件的路径。首先,脚本会使用 wc -l
命令统计 OK 文件的行数,并将结果存储在 total_lines
变量中,作为参考值。然后,在处理每个文件夹时,脚本会将该文件夹下的所有 TXT 文件合并到指定的输出文件中,并使用 wc -l
命令统计合并后文件的行数,并将结果与 total_lines
进行对比,将对比结果记录到指定的结果文件中。
请根据实际情况修改代码中的路径和文件名,确保脚本能够正确地合并文件并进行数据量对比,并将对比结果记录到指定的文件中。