姜小嫌

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

shell command

shell给一个文件中的每一行开头插入字符的方法:awk '{print "xxx"$0}' fileName

shell给一个文件中的每一行结尾插入字符的方法:awk '{print $0"xxx"}' fileName

shell给一个文件中的每一行的指定列插入字符的方法:awk '$O=$O" xxx"' fileName

需求:
由于hive表中有大量的临时表,所以决定要想删除它们,这些表全是以test_开头。
因为hive的shell客户端不支持以某个字符开头或以正则表达式删除表,一般写个python 脚本连接hs2,做规则匹配删除也挺好。

今天思路做,操作过程:

1.把表全显示出来

    hive -e"use db;show tables" > tables

2.给文件中的每一行开头添加drop tables

    awk '{print "drop table "$0}' tables > drop_tables

3.给文件中的每一行结尾添加分号

    awk '{print $0";"}' drop_tables > drop_tables_sql

4.现use db; 然后直接复制到hive的shell客户端执行即可

done.
posted on 2018-11-12 17:22  姜小嫌  阅读(14471)  评论(0编辑  收藏  举报