##实例代码

#!/bin/bash

cat ./switchsql.txt | while read line

do

tmp_partition_name=`echo $line | awk -F ' ' '{print $6}'`

if [[ "$tmp_partition_name" = "" ]]; then

continue

fi

start_flag=${tmp_partition_name:0:3}

date_flag=${tmp_partition_name:((${#tmp_partition_name} - 6))}

echo "${start_flag}${date_flag}" >> ./table_partition_date.txt

done

sort ./table_partition_date.txt | uniq > ./tpd_map.txt

rm ./table_partition_date.txt

declare -a partition_value_map=()

OUTFILE=`cat ./tpd_map.txt`

while read line

do

#业务数据后台查询,这里只模拟

part_flag="2"

partition_value="170724"

if [[ "$line" =~ "PD" ]]; then

partition_value="170718"

part_flag="1"

fi

if [[ "$line" =~ "PM" ]]; then

partition_value="170801"

part_flag="3"

fi

if [[ "$line" =~ "PY" ]]; then

partition_value="180717"

part_flag="4"

fi

date_flag=${line:((${#line} - 6))}

partition_value_map["${part_flag}${date_flag}"]="${partition_value}"

done <

$OUTFILE

EOF

get_partition_high_value(){

partition_name=$1

part_flag="2"

if [[ "$partition_name" =~ "PD" ]]; then

part_flag="1"

fi

if [[ "$partition_name" =~ "PM" ]]; then

part_flag="3"

fi

if [[ "$partition_name" =~ "PY" ]]; then

part_flag="4"

fi

date_flag=${partition_name:((${#partition_name} - 6))}

match_str="${part_flag}${date_flag}"

high_value=""

for key in ${!partition_value_map[@]}

do

if [ "$match_str" = "$key" ] ; then

high_value="${partition_value_map[$key]}"

break;

fi

done

echo $high_value

}

high_value=`get_partition_high_value "PD_IND_H_1234_170717"`

echo $high_value

high_value=`get_partition_high_value "PW_IND_H_1234_170717"`

echo $high_value

high_value=`get_partition_high_value "PM_IND_H_1234_170701"`

echo $high_value

##组织数据

alter table PM4H_DB.IND_M15_44 exchange partition PD_IND_M15_44_170717 with table PM4H_DB.PW_IND_M15_44_160704;

alter table PM4H_DB.IND_2D_33_1 exchange partition PW_IND_2D_33_1_170717 with table PM4H_DB.PW_IND_2D_33_1_160704;

alter table PM4H_DB.IND_2H_62_12 exchange partition PM_IND_2H_62_12_170701 with table PM4H_DB.PW_IND_2H_62_12_160704;

exit;

##运行结果

pm22:/netwatcher/dbbackup> sh map.sh

170718

170724

170801

总结

以上是编程之家为你收集整理的shell中map的用法全部内容,希望文章能够帮你解决shell中map的用法所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

linux 脚本map,shell中map的用法相关推荐

  1. linux脚本除号,shell中常用的特殊符号整理

    在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...

  2. linux脚本冒号,Shell中的冒号 :

    {str:=expr}如果变量str不为空,${str:=expr}就等于str的值,若str为空,就把expr的值赋值给str. 用途说明 我们知道,在Linux系统中,冒号(:)常用来做路径的分隔 ...

  3. linux 脚本continue,shell中的break和continue

    使用continue时,只是终止余下的操作,而不会跳出整个循环. 复制代码 代码如下: #!/bin/bash limit=19 echo "printing Number 1 throug ...

  4. linux脚本编程(shell)浅介

    linux脚本编程(shell)浅介 2006-01-10 11:45 27693人阅读 评论(18) 收藏 举报 脚本shelllinux编程bash语言 linux脚本(shell)编程 啊,昨天 ...

  5. shell实例第22讲:shell中分隔符IFS用法

    shell中分隔符IFS用法 1.什么是IFS? IFS在shell中是分隔符的意思,即IFS这个变量中存放了分隔符. 2.IFS是全局变量还是局部变量? (1)linux中变量分两种:全局变量env ...

  6. shell中expect的用法

    shell中expect的用法 expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: ...

  7. Shell中的join用法

    Shell中的join用法 将两个文件里指定栏位置同样的行连接起来, 即依照两个文件中共同拥有的某一列, 将相应的行拼成一行(原文件不改变) 内连接(忽略不匹配的行) join file1 file2 ...

  8. Shell中的until用法

    Shell中的until用法 基本格式: until CONDITIONdostatementdone    说明:     until进入循环的条件是:condition不成立时,就执行循环.    ...

  9. linux 脚本 eof,shell

    摘要 腾兴网为您分享:学习shell中EOF的用法,指纹解锁,招联金融,长沙银行,仙乐等软件知识,以及微信智能聊天机器人,佳能6018l打印机驱动,糖水app,dnf韩服补丁,智慧商贸进销存版,经济学 ...

最新文章

  1. WebView你真的熟悉吗?看了才知道
  2. profiles 配置详解
  3. Mnist 0的波函数
  4. 一对多分页查询mysql编写_一对多分页的SQL到底应该怎么写?
  5. jquery easyui datagrid mvc server端分页排序筛选的实现
  6. kafka的分区策略(partition assignment strategy)
  7. python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址
  8. JavaWeb学习过程 之c3p0的使用
  9. C语言打包解包文件程序(简易版)
  10. 给数据库减负的八个思路,盘它!
  11. Hbase单机安装及使用hbase shell进行简单操作
  12. JS获取IP、MAC和主机名的五种方法
  13. 把图片url 伪静态 php,thinkphp5系列之URL伪静态(生成优雅的URL)
  14. 华为悦盒EC6109U(联通IPTV机顶盒)
  15. Python图像处理库PIL的基本概念介绍
  16. MapReduce论文解读
  17. 上海有哪些牛逼的互联网公司?
  18. 微信登录界面安卓代码_「微信多开神器」一键安排你的所有微信
  19. Learning Image Conditioned Label Space for Multilabel Classification
  20. php实现视频转gif,一种在线视频转GIF的方法与流程

热门文章

  1. 时间定位表达式-用于时间的加、减调整
  2. 《剑指offer》第二章小结(1)——链表的基本操作
  3. Leetcode 1143.最长公共子序列(求长度)
  4. python 中的 type(), dtype(), astype()的区别
  5. thinkcmf apache rewrite文件
  6. 从王者荣耀看设计模式(一.策略模式)
  7. 证明二叉树节点数公式
  8. 生成不同尺寸dimen的xml文件以及文件夹
  9. 【javascript】基于javascript的小时钟
  10. Ncurses 命令行图形库