#!/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"* ]]; thenoracle_timestamp=$(echo "$line" | awk -F '|' '{print $3}')fi# 提取POSTGRES行的时间戳,并将其转换成与ORACLEDB行相同时区的时间if [[ $line == *"POSTGRES"* ]]; thenpostgres_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