bash查找内容并修改 sed for while
quantize_nets_sh="./MOD_algo/apps/model_cvt_package/quantize_nets.sh"
key_line=$(grep ^"bash" $quantize_nets_sh)
echo "$key_line" > key_line.txt
key_line_count=0
key_line_arr=()
while read line;do
key_line_arr[$key_line_count]=$line
((key_line_count+=1))
done < key_line.txt
rm key_line.txt
model_index=`cat $quantize_nets_sh | grep ^"model_index=" | sed 's/model_index=//g'`
model_index_count=0
key_model_index_arr=()
for id in $model_index; do
key_model_index_arr[model_index_count]=$id
((model_index_count+=1))
done
if [ $model_index_count -ne $key_line_count ];then
echo "make sure model_index num equals to convert model num"
exit 0
fi
key_model_arr=()
for((i=0;i<$key_line_count;i++));do
item_count=0
for item in ${key_line_arr[$i]};do
((item_count+=1))
if [ $item_count -eq 14 ]; then
key_model_arr[$i]=$item
fi
done
done
para_ini="./MOD_algo/apps/hik_hisi_test_plat/hisi_demo/para.ini"
mod_model_num=`cat $para_ini | grep ^"mod_model_num = " | sed 's/mod_model_num = //g'`
mod_model_count=0
mod_model_line_num_list=()
sed -n '/mod_model_path/=' $para_ini > line_num.txt
while read line;do
mod_model_line_num_list[$mod_model_count]=$line
((mod_model_count+=1))
done < line_num.txt
rm line_num.txt
if [ $mod_model_count -ne $mod_model_num ]; then
echo "make sure mod_model_num num equals to mod_model_path num"
exit 0
fi
for((i=0;i<$model_index_count;i++));do
key_line_num=${mod_model_line_num_list[((${key_model_index_arr[$i]}-1))]}
key_line_contex="mod_model_path = ./models/"${key_model_arr[$i]}
sed -i "${key_line_num}c${key_line_contex}" $para_ini
done
bin_model_path="./MOD_algo/apps/model_cvt_package/output"
dest_bin_model_path="./MOD_algo/apps/hik_hisi_test_plat/hisi_demo/models/"
for((i=0;i<$model_index_count;i++));do
src_bin_model_path=${bin_model_path}"/"${key_model_arr[$i]}
cp $src_bin_model_path $dest_bin_model_path
done