以下是一个纯 Shell 脚本的示例,用于合并一周内的所有文件夹下的文件,并与 “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"
# 循环遍历指定日期范围内的文件夹
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"
# 数据量对比
ok_file="$folder_path/OK.txt"
if [[ -f "$ok_file" ]]; then
ok_lines=$(wc -l < "$ok_file")
merged_lines=$(wc -l < "$output_file")
echo "日期 $current_date:OK 文件有 $ok_lines 行,合并文件有 $merged_lines 行" >> "$result_file"
else
echo "日期 $current_date:找不到 OK 文件" >> "$result_file"
fi
else
echo "日期 $current_date:找不到文件夹" >> "$result_file"
fi
# 增加一天,进入下一个日期
current_date=$(date -I -d "$current_date + 1 day")
done
在上述示例中,您需要修改以下部分以适应您的实际情况:
-
output_file
:合并后的文件输出路径。 -
result_file
:存储数据量对比结果的文件路径。 -
start_date
:要合并的日期范围的起始日期。 -
end_date
:要合并的日期范围的结束日期。 -
folder_path
:文件夹的路径。
脚本会循环遍历指定日期范围内的文件夹。对于每个文件夹,它会将该文件夹下的所有 TXT 文件合并到指定的输出文件中。然后,它会进行数据量对比,将对比结果记录到指定的结果文件中。对于每个文件夹,如果存在名为 “OK.txt” 的文件,则会统计行数并与合并文件的行数进行对比。
请根据实际情况修改代码中的路径和文件名,以确保脚本能够正确地合并文件并进行数据量对比,并将对比结果记录到指定的文件中。