linux 脚本map,shell中map的用法
##实例代码
#!/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的用法相关推荐
- linux脚本除号,shell中常用的特殊符号整理
在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...
- linux脚本冒号,Shell中的冒号 :
{str:=expr}如果变量str不为空,${str:=expr}就等于str的值,若str为空,就把expr的值赋值给str. 用途说明 我们知道,在Linux系统中,冒号(:)常用来做路径的分隔 ...
- linux 脚本continue,shell中的break和continue
使用continue时,只是终止余下的操作,而不会跳出整个循环. 复制代码 代码如下: #!/bin/bash limit=19 echo "printing Number 1 throug ...
- linux脚本编程(shell)浅介
linux脚本编程(shell)浅介 2006-01-10 11:45 27693人阅读 评论(18) 收藏 举报 脚本shelllinux编程bash语言 linux脚本(shell)编程 啊,昨天 ...
- shell实例第22讲:shell中分隔符IFS用法
shell中分隔符IFS用法 1.什么是IFS? IFS在shell中是分隔符的意思,即IFS这个变量中存放了分隔符. 2.IFS是全局变量还是局部变量? (1)linux中变量分两种:全局变量env ...
- shell中expect的用法
shell中expect的用法 expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: ...
- Shell中的join用法
Shell中的join用法 将两个文件里指定栏位置同样的行连接起来, 即依照两个文件中共同拥有的某一列, 将相应的行拼成一行(原文件不改变) 内连接(忽略不匹配的行) join file1 file2 ...
- Shell中的until用法
Shell中的until用法 基本格式: until CONDITIONdostatementdone 说明: until进入循环的条件是:condition不成立时,就执行循环. ...
- linux 脚本 eof,shell
摘要 腾兴网为您分享:学习shell中EOF的用法,指纹解锁,招联金融,长沙银行,仙乐等软件知识,以及微信智能聊天机器人,佳能6018l打印机驱动,糖水app,dnf韩服补丁,智慧商贸进销存版,经济学 ...
最新文章
- WebView你真的熟悉吗?看了才知道
- profiles 配置详解
- Mnist 0的波函数
- 一对多分页查询mysql编写_一对多分页的SQL到底应该怎么写?
- jquery easyui datagrid mvc server端分页排序筛选的实现
- kafka的分区策略(partition assignment strategy)
- python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址
- JavaWeb学习过程 之c3p0的使用
- C语言打包解包文件程序(简易版)
- 给数据库减负的八个思路,盘它!
- Hbase单机安装及使用hbase shell进行简单操作
- JS获取IP、MAC和主机名的五种方法
- 把图片url 伪静态 php,thinkphp5系列之URL伪静态(生成优雅的URL)
- 华为悦盒EC6109U(联通IPTV机顶盒)
- Python图像处理库PIL的基本概念介绍
- MapReduce论文解读
- 上海有哪些牛逼的互联网公司?
- 微信登录界面安卓代码_「微信多开神器」一键安排你的所有微信
- Learning Image Conditioned Label Space for Multilabel Classification
- php实现视频转gif,一种在线视频转GIF的方法与流程