返回首页
当前位置: 主页 > 精通Office > Ubuntu教程 >

Shell截取字符串

时间:2015-12-25 21:55来源:知行网www.zhixing123.cn 编辑:麦田守望者

最近遇到个问题,需要获取表的字符集。

下面做一个演示。

环境:
Linux:RHEL 6.1
MySQL:5.1

首先创建测试库,测试表:

CREATE DATABASE TEST DEFAULT CHARACTER SET UTF8;

USE test;

CREATE TABLE t(id INT, name VARCHAR(20)) CHARSET UTF8;

接着实现功能:

第一种方法:

mysql -uroot -proot -Ne 'show create table test.t' | grep CHARSET | awk -F' ' '{print $16}'

这种方法的缺陷是:每张表的大小不一样,这样 $16 获得的数据不一定是 CHARSET 了。

第二种方法:

mysql -uroot -proot -Ne 'show create table test.t' > file; \
sed 's/$/ROBIN/g' -i file; awk '{sub(/^.*DEFAULT /, ""); \
sub(/ROBIN.*/, ""); print}' file
CHARSET=utf8

mysql -uroot -proot -Ne 'show create table test.t' > file; \
sed 's/$ROBIN/g' -i file; \
awk '{sub(/^.*DEFAULT CHARSET=/, ""); sub(/ROBIN.*/, ""); print}' file > newfile; \
echo CHARSET=\`cat newfile\`
CHARSET=utf8

这种方法的基本思路是:保存文件,追加内容,再截取字符串之间的东西,也就是那个CHARSET。

缺点是麻烦,复杂。

最简单的方法:

mysql -uroot -proot -Ne 'show create table test.t' | awk -F 'CHARSET=' '{print $2}'

这种方法结合上述两种方法的优点。赞。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
标签(Tag):Ubuntu Ubuntu教程 Ubuntu美化 Ubuntu技巧 ubuntu源 ubuntu模板
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣