既然现在做BI了,所以需要经常和Unix,oracle ,甚至informatica等打交道了。当然了,遇到了很多的问题,还好一一都得到了解决。现在,我把其中的一些实用技巧总结出来,以供大家参考。大家有更好的方法,不妨指点一下,谢谢!
Unix 方面:
1
创建一个空文件:>newfilename
2
查看系统信息:uname -a
3
复制文件夹,主要是含有子文件夹的情况:cp –rf src_dir dest_dir
4
删除文件夹,主要是文件夹不为空的情况:rm –r mydir
5
从某个字符串中删除某个字符左边内容:
6
从某个字符串中删除某个字符右边内容:
remove the left context of ‘_’ from a string : ##*_
remove the right context of ‘.’ from string:%%.*
eg:
vf =”abc.log”
echo ${vf%%.*}_`date +%Y%m%d`.${vf##*.}
abc_20071009.log
cp $vf ${vf%%.*}_`date +%Y%m%d`_bak.${vf##*.}
abc_20071009_bak.log
7
VI的使用:
常用快捷健:
M 移至视窗的中间那列
L 移至视窗的最后一列
G 移至该档案的最后一列
nG 移至该档案的第n列
n+ 移至游标所在位置之后的第n列
n- 移至游标所在位置之前的第n列
<ctrl><g> 显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
L 移至视窗的最后一列
G 移至该档案的最后一列
nG 移至该档案的第n列
n+ 移至游标所在位置之后的第n列
n- 移至游标所在位置之前的第n列
<ctrl><g> 显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
7.1
如何设置vim自动显示行号?
在每个用户的主目录下,都有一个 vi 的配置文件".vimrc"或".exrc"
用户可以编辑它,使这些设置在每次启动 vi 时,都有效.
例如,加入如下设置行:
set nu 显示行号
set nonu 不显示行号
set ic 查找时不考虑大小写
set noic 查找时考虑大小写
8
脚本中使用位置参数,只是显示文件名:
$pg param1
#!/bin/bash
echo “This is $0 calling”
echo “This is `basename $0` calling”
9
使用数组:
a=(a bb ccc)
echo ${#a[*]} #print size of array a
echo ${a[*]} #print all the elements of a
echo ${a[1]} #print the 2nd element
echo $[#a[1]] #print the length of the 2nd element
10
操作进程:
暂停一个进程:<ctrl> + z
查看所有job: jobs
把某个暂停的进程放到后台继续运行:bg 1
把某个后台运行的进程放到前台运行:fg 1
11
正则表达式:
11.1
/<,/> 正则表达式中的单词边界.如:
bash$grep '/<the/>' textfile
12
字符替换:
tsgsd00175:/afs/ae.ge.com/informatica/ardw/dev/bin/test# echo "hello"|tr 'a-z' 'A-Z'
HELLO
13
。。
Oracle 方面:
1
函数
1.1
Date 函数:
在
pl/sql
中,
trunc
函数返回由指定测量单位截取的时间值。
trunc 函数的语法如下:
trunc(date, [format])
date 就是要被截取的时间值。
format 是用于截取的测量单位。如果省略的话 date 将被截取到 day 的精度。
format 参数表:
unit valid format parameters
Year SYYY,YYYY,YEAR,SYEAR,YYY,YY,Y
ISO YEAR IYYY,IY,I
Quarter Q
Month MONTH,MON,MM,RM
Week WW
IW IW
W W
Day DDD,DD,J
Start day of week DAY,DY,D
Hour HH,HH12,HH24
Minute MI
例子:
trunc(to_date("22-AUG-03"), "YEAR") 返回 ‘01-JAN-03’
trunc(to_date("22-AUG-03"), "Q") 返回 ‘01-JUL-03’
trunc(to_date("22-AUG-03"), "MONTH") 返回 ‘01-AUG-03’
trunc(to_date("22-AUG-03"), "DDD") 返回 ‘22-AUG-03’
trunc(to_date("22-AUG-03"), "DAY") 返回 ‘17-AUG-03’
trunc 函数的语法如下:
trunc(date, [format])
date 就是要被截取的时间值。
format 是用于截取的测量单位。如果省略的话 date 将被截取到 day 的精度。
format 参数表:
unit valid format parameters
Year SYYY,YYYY,YEAR,SYEAR,YYY,YY,Y
ISO YEAR IYYY,IY,I
Quarter Q
Month MONTH,MON,MM,RM
Week WW
IW IW
W W
Day DDD,DD,J
Start day of week DAY,DY,D
Hour HH,HH12,HH24
Minute MI
例子:
trunc(to_date("22-AUG-03"), "YEAR") 返回 ‘01-JAN-03’
trunc(to_date("22-AUG-03"), "Q") 返回 ‘01-JUL-03’
trunc(to_date("22-AUG-03"), "MONTH") 返回 ‘01-AUG-03’
trunc(to_date("22-AUG-03"), "DDD") 返回 ‘22-AUG-03’
trunc(to_date("22-AUG-03"), "DAY") 返回 ‘17-AUG-03’
SELECT
trunc(SYSDATE)FROM dual;
1.2
..