#!/bin/bash
##下面三个txt用来是所有的lidar,vis,radar路径
ls -R /apollo/data/xuehui_test/demo/demo_pcd/*/*/*.jpg > /apollo/data/xuehui_test/jpg_001_list.txt
ls -R /apollo/data/xuehui_test/demo/demo_vis/*.jpg > /apollo/data/xuehui_test/jpg_002_list.txt
ls -R /apollo/data/xuehui_test/demo/demo_radar/long_range/*.jpg > /apollo/data/xuehui_test/jpg_003_list.txt
#路径大概长这个样子
#/apollo/data/xuehui_test/demo/demo_radar/long_range/1563936013.222200.jpg
#/apollo/data/xuehui_test/demo/demo_radar/long_range/1563936013.309112.jpg
##下面三个txt用来存放匹配上的路径
touch /apollo/data/xuehui_test/jpg_lidar_matched_list.txt && rm /apollo/data/xuehui_test/jpg_lidar_matched_list.txt #被radar时间戳匹配上的lidar
touch /apollo/data/xuehui_test/jpg_vis_matched_list.txt && rm /apollo/data/xuehui_test/jpg_vis_matched_list.txt #被radar时间戳匹配上的vis
touch /apollo/data/xuehui_test/jpg_radar_not_matched_list.txt && rm /apollo/data/xuehui_test/jpg_radar_not_matched_list.txt #找不到合适lidar时间戳的radar
#阈值
Time_Diff=0.1
for line_radar in `cat /apollo/data/xuehui_test/jpg_003_list.txt`
do
flag_deleted=1
radar_time_stamp=`basename $line_radar .jpg`
#匹配合适时间戳的lidar
for line_lidar in `cat /apollo/data/xuehui_test/jpg_001_list.txt`
do
lidar_time_stamp=`basename $line_lidar .jpg`
time_diff=`echo "$radar_time_stamp-$lidar_time_stamp" |bc`
# echo $time_diff
if [ `echo "$time_diff >= -$Time_Diff" |bc` -eq 1 ] && [ `echo "$time_diff <= $Time_Diff" |bc` -eq 1 ]; then
echo $time_diff
echo $line_lidar >> /apollo/data/xuehui_test/jpg_lidar_matched_list.txt
flag_deleted=0 #只要匹配上,flag就等于零
break #找到第一个合适的时间戳之后就退出循环,等下一个radar时间戳.
fi
done
if [ "$flag_deleted" -eq 1 ]; then
echo $line_radar >> /apollo/data/xuehui_test/jpg_radar_not_matched_list.txt #radar 没有找到合适的lidar时间戳
flag_deleted=1 #这个flag=1是为vis的匹配做准备的.
fi
##匹配合适时间戳的vis
for line_vis in `cat /apollo/data/xuehui_test/jpg_002_list.txt`
do
vis_time_stamp=`basename $line_vis .jpg`
time_diff=`echo "$radar_time_stamp-$vis_time_stamp" |bc`
# echo $time_diff
if [ `echo "$time_diff >= -$Time_Diff" |bc` -eq 1 ] && [ `echo "$time_diff <= $Time_Diff" |bc` -eq 1 ]; then
echo $time_diff
echo $line_vis >> /apollo/data/xuehui_test/jpg_vis_matched_list.txt
flag_deleted=0
break
fi
done
if [ "$flag_deleted" -eq 1 ]; then
echo $line_radar >> /apollo/data/xuehui_test/jpg_radar_not_matched_list.txt #radar 没有找到合适的lidar时间戳
fi
done
##这里还少一个把 jpg_radar_not_matched_list.txt 里出现的所有路径,在jpg_001_list.txt中都删掉
参考:
shell比较浮点数和整数