#!/bin/bash
# 从data_validation.txt文件中提取需要处理的行,并将结果保存到temp.txt文件中
grep -E "ORACLEDB|POSTGRES" data_validation.txt > temp.txt
# 逐行读取temp.txt文件
while IFS= read -r line; do
# 提取倒数第二列的时区信息
timezone=$(echo "$line" | awk -F '|' '{print $3}' | awk '{print substr($0, length($0) - 8, 3)}')
# 提取ORACLEDB行的时间戳
if [[ $line == *"ORACLEDB"* ]]; then
oracle_timestamp=$(echo "$line" | awk -F '|' '{print $3}')
fi
# 提取POSTGRES行的时间戳,并将其转换成与ORACLEDB行相同时区的时间
if [[ $line == *"POSTGRES"* ]]; then
postgres_timestamp=$(echo "$line" | awk -F '|' '{print $3}')
converted_timestamp=$(TZ="UTC$timezone" date -d "$postgres_timestamp" +"%Y-%m-%d %H:%M:%S %z")
line=$(echo "$line" | awk -F '|' -v timestamp="$converted_timestamp" '{$3=timestamp; print}' OFS='|')
fi
# 输出处理后的行
echo "$line"
done < temp.txt
# 删除临时文件
rm temp.txt