随笔分类 -  Linux

摘要:从去年12.12开始,工作日都会从单位的落地窗向外拍一张照片,有点每日打卡的意思。weekday 是一天不落的,weekend 不是每次都到单位,落了几次。想法来自上学的时候,有同学在同一个地方,拍北洋广场的一年四季,做成 gif,非常漂亮。自己就也想试一下,于是就动手了。干货开始。工具:shell... 阅读全文
posted @ 2015-02-07 16:29 郝玉琨 阅读(2705) 评论(1) 推荐(0)
摘要:Sqoop提供的--fields-terminated-by选项可以支持指定自定义的分隔符,但是它只支持单字节的分隔符,对于我们特殊的需求:希望使用双字节的“|!”,默认的是不支持的。Sqoop在进行每一次的导出任务时,都会调用codegen,生成一个java文件,并编译打包成一个jar,供MapR... 阅读全文
posted @ 2014-05-23 19:39 郝玉琨 阅读(13551) 评论(3) 推荐(1)
摘要:好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致。今天是个好日子,走起!btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的。需求:--基本的:当前Hive查询结果存在数据与表头无法对齐的情况,不便于监控人员直接查看,或者导出到excel中,需要提供一个脚... 阅读全文
posted @ 2014-05-20 15:44 郝玉琨 阅读(12031) 评论(0) 推荐(2)
摘要:> getline 控制输入 使用getline可以对输入进行更多的控制。用变量名作为参数传递给getline,getline能将数据读入到这个变量。 1: # gawk sample: g1 2: BEGIN { 3: getline aa 4: print aa 5: } 6: -------... 阅读全文
posted @ 2012-09-07 22:49 郝玉琨 阅读(330) 评论(0) 推荐(0)
摘要:> pattern的细化首先说下BEGIN和END之间的多个模式的执行顺序,我写了下面的程序来验证下:图1 多个模式的执行顺序验证(数据文件为cars)如上图,BEGIN,END中间有三个模式,缺省模式,判断出厂时间($3>2000),判断品牌($1 ~ /ford/),运行结果如下:图2 运行结果可见,对数据文件中的一条记录,gawk的多个文件是依次匹配的。· pattern中用到的语法和运算符:1、正则表达式如图1中看到的,用 / / 将正则表达式括起来,即可将该表达式作为模式使用:单独的“ /ford/ ” 表示用该表达式匹配整个记录也可以至少用“ ~ ”,如“$1 阅读全文
posted @ 2012-09-04 11:06 郝玉琨 阅读(842) 评论(0) 推荐(0)
摘要:第一次看见awk这三个字母,是在某实习童鞋的QQ状态里面,赞同事写的awk如何高效。昨天在书畅草草看了下IBM官方技术博里的文章,觉得很赞,很激动,但是有点看不太懂,还是自己抱着教科书,老老实实从头看起吧。哦,这里说一下,最近看的shell相关的东西,都是跟着《A Pratical Guide to Linux Commands,Editors, and Shell Programming》这本书的。gawk是awk的GNU版本。> 使用条件主要是用gawk来处理结构化的数据。什么是结构化呢,我的理解,就是一个文件里面的内容,可以按照某种记录记录格式,一条记录一条记录地读,同时,每一条记 阅读全文
posted @ 2012-09-04 00:28 郝玉琨 阅读(3097) 评论(0) 推荐(0)
摘要:闲话几句:不是特别喜欢按部就班地跟着教科书学东西,觉得刚开始一点都不了解的时候,需要看一点书,了解一些之后,就要多看实际的例子,通过实践、例子来把东西学明白。 接着前面(3)中的quiz的例子,把其中拍代码时不时很明白的几个点,抠出来琢磨下。 1: #!/bin/bash 2: # a quiz program 3: 4: set ... 阅读全文
posted @ 2012-08-30 17:43 郝玉琨 阅读(353) 评论(0) 推荐(0)
摘要:> 算术赋值 与 算术扩展 算术扩展:$((expression)) 用它给表达式赋值,并用得到的结果来取来$((expression))。用来显示表达式的值或把值赋给一个变量 算术赋值:let “expression” 或 ((expression)) 用来给表达式赋值,并返回一个状态码。用来进行逻辑比较或赋值运算 # 算术扩展可以看做是类似 int 型返回值的函数,而算术赋值是类似 vo... 阅读全文
posted @ 2012-08-29 13:38 郝玉琨 阅读(364) 评论(0) 推荐(0)
摘要:> 数组NAMES=(max helen sam zach)NAMES[*] 取出所有数据,然后作为一个元素返回NAMES[@] 取出所有数据,但是返回的仍然是一个数组,可以用来完成数组的赋值> export使父进程的变量对子进程可见、可用;一旦利用expert生命一个变量作为参数,shell就会把变量的值传递到子进程得到调用环境中,使用的是传值调用 每个子进程在使用变量时得到变量的副本。eg. export cheese=american或 cheese=american export cheese> typeset函数内,局部变量用typeset修饰,避免重名------ 阅读全文
posted @ 2012-08-27 20:27 郝玉琨 阅读(266) 评论(0) 推荐(0)
摘要:> vi复制粘贴 光标移动到要复制的部分的开头,Esc退出插入模式,按v进入Visual模式,用hjkl选中要复制的部分 按Y或者yy,复制 移动光标到目标位置,按p,粘贴 > echo –e 参数 –e 可以使echo解释由反斜杠“\”转义的字符,转义字符一定要由双引号引起来 echo –E 与-e相反,禁止对转义字符“\”的解释,默认如此 > echo –n 禁止换行符终止... 阅读全文
posted @ 2012-08-26 16:09 郝玉琨 阅读(212) 评论(0) 推荐(0)
摘要:配置文件在/etc/network/interfaces cd /etc/network/ sudo vi interfaces 需要修改权限,否则无法保存 ls –l 默认为644 sudo chmod 777 interfaces vi interfaces 修改内容如下,注意的是,网卡的名称需要事先查看下 之后,重启下网卡,就ok了,如果网卡名称设置不对的话,会... 阅读全文
posted @ 2012-07-15 16:28 郝玉琨 阅读(1983) 评论(0) 推荐(0)
摘要:1、写依赖关系makefile 依赖关系 myapp:main.o2.o3.omain.o:main.ca.h2.o:2.ca.hb.h3.o:3.cb.hc.h 基本是倒序的顺序,定义最终输出的是myapp,然后写myapp的依赖关系,即它是依赖那些文件生成的,然后对于myapp依赖的这些文件,挨个照例写出他们的依赖。 写法上注意,“:”紧贴在输出对象后面,冒号后面是一个空格,之后接着依赖的各项,用空格隔开。 有个简单的办法,终端输入gcc -MM main.c 2.c 3.c,直接就得到了依赖关系,把结果拷进makefile里面就行了。2、明确创建规则makefile 创建规则 myapp 阅读全文
posted @ 2011-10-20 21:33 郝玉琨 阅读(554) 评论(0) 推荐(0)