(1)dt=`date -v-$num/d +%Y%m/%d` :传入num后进行日期的减法
``: 保留可下次调用执行命令
(2)num=`expr $num - 1`:expr为强制执行算术,但其中的“-”等算术符合必须与前后的数字保持一个空格,否则报错
(3)while [ $num -gt 0 ]:[]为test的缩写,但[]必须保证前后都有空格隔开,否则报miss的错误
(4)find "/data1/data207/blog/programlog/rsyncdata/user_action_v5log/201103/27" -maxdepth 1 -type d -name "[0-9]*.*.*":
-maxdepth 1:只查找一级,即不查找子目录
-type d :查找目录
(5)find /data1/data207/blog/programlog/rsyncdata/user_action_v5log/201103/27/[0-9]{0,3}*/ -name "*.log":
查找ip目录下所有的log日志
(6)awk中的变量不需要用双引号
(7)sed 's/freddie/lacey/' –list [string]:在样本[String]中将freddie替换成lacey只替换第一次,
在模式后面加上g即可替换所有的,例如:sed -e 's/1/one/g;s/2/two/g;s/3/three/' –list
在输入样本数据时,默认是输入一行后立即显示相应的替换后的内容,不管是否此行能否匹配,加上-n的参数,则可以阻止自动显示没有匹配的行的结果,只显示匹配上的数据行,如sed -n 's/1/one/g;s/2/two/g;s/3/three/gp' -list,同时在模式后面需要添加p来进行相应的显示打印,否则不会显示替换结果
-list:使用样本输入
(7.1)sed 4,/.*one.*/d sedText.txt :删除指定文件的行数,4表示文件的起始行,/.*one.*/为匹配的终止行,中间用逗号分隔,d代表要删除相应的行
(8)uniq 1.text:将相邻的重复行删除显示,-d:只显示重复的行,-u:只显示唯一的行,-c:显示每行的重复数字,一般用法是结合sort使用,
如sort 1.text | uniq -c
(9)sed主要用来改变数据;awk用来重新排列数据。通过sed和awk的高级编程可以采集到大量的信息。
(10) cat todb.log | awk -F"/t" '{print $1}' | head 查看日志
(11)match匹配时RLENGTH置成匹配字符串的长度(RSTART匹配的起始位置)
match函数返回在字符串中正则表达式位置的索引,如果找不到指定的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置,RLENGTH为到子字符串末尾的字符个数。substr可利于这些变量来截取字符串。函数格式如下:
match( string, regular expression )
实例:
$ awk '{start=match("this is a test",/[a-z]+$/); print start}'
$ awk '{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }'
第一个实例打印以连续小写字符结尾的开始位置,这里是11。
第二个实例还打印RSTART和RLENGTH变量,这里是11(start),11(RSTART),4(RLENGTH)。
(12)awk -F"/t" 'NR==FNR{a[$7]=$2} NR!=FNR{if(a[$7]!=""){ref=a[$7]}else{ref=$2};print $1"/t"ref"/t"$3"/t"$4"/t"$5"/t"$6"/t"$7}' $tmp_1_uniq $tmpfile_2
此用法为表示将$tmp_1_uniq 与文件$tmpfile_2进行join,连接的关键列是$7,存在一致的$7,即将$tmpfile_2中的$2更新为$tmp_1_uniq 的$2
(13)du –sh
统计目录中的文件的大小并以列表显示:
du [Path]
-a 全部文件 包括隐藏的。
-h 以M 为单位显示文件大小结果。
-s 统计此目录中所有文件大小总和。
..
这些是常用的
e.g.:
du -sh
du -ah