蛋疼的安装脚本--没有任何技术含量

more yc_install10-20.sh #英超直播p2p服务器安装脚本 #!/bin/sh #by expert1 ############# install service of yingchao ;ch3.......ch10 ###################### #### warning: please run it such as "/bin/sh yc_install.sh myip ########### ip=$1 cat >/data/tcast_beta/bin/reportserver.sh <<EOF #!/bin/bash nohup ./reportserver -p 18885 -u http://myip/p2pmon...

作者: expert1 发布时间: 11-03

shell脚本中的特定变量

$# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个 $$ 脚本运行的当前进程PID号 $! 后台运行的最后一个进程的进程号 $@ 与$*相同,但是使用时用双引号,并将各个参数加双引号返回 $- 显示shell使用的当前选项,与set命令功能相同 $_ 上一个命令的最后一个参数 $? 显示最后命令的退出状态,0表示执行成功 ,其他值有...

作者: cxz2009 发布时间: 11-04

移动文件夹

同事问我把下边的文件移到日期为文件夹里面咋做: cctm44_conc_FS04_20100906.ctl cctm44_conc_FS12_20101021.ctl 。。。。。。 ls |awk -F'[._]' '{system("mkdir "$4);system("mv "$0" "$4)}' 看来system挺好的,平时我一般print 后边的命令然后|sh,哎,还是gawk好啊。 其他awk好像不支持system函数

作者: expert1 发布时间: 11-03

提取不相交的唯一的范围

格式如下: A 20 56 B 40 68 A 207 236 C 136 152 B 86 121 A 95 110 B 161 186 A 145 170 第一列为元素,可以理解为分布在直线上的线段,第二列和第三列分别为起点和终点,同一元素可以有多段,现要找出独属于A的一段,即起止点范围内没有其他的元素出现,上述数据即A的第4段符合。 A 207 236 sort -k2,2n -k 3n,3 urfile|awk -f scr.awk # cat scr.awk awk '{if(NR==1){p=...

作者: expert1 发布时间: 11-03

批量重启脚本

#!/bin/sh #by expert1 # usage: restart "reportserver,p2pserver,tcast_root" of nba #ps -ef|awk '$8 ~/ch/&&$8~/reportserver/{print "kill -9 "$2}'|sh #ps -ef|awk '$8 ~/ch/&&$8~/p2pserver/{print "kill -9 "$2}'|sh #ps -ef|awk '$8 ~/ch/&&$8~/tcast_root/{print "kill -9 "$2}'|sh #for f in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 ;do #...

作者: expert1 发布时间: 11-03

利用expect自动svn

#!/usr/bin/expect ############################### # # USAGE: automatically svn check out SVN's ip,you need to install expect first .use "apt-get install expect" # usage :expect svn.exp # by expert1 2010-08-31 ############################### set timeout -1 set usr "admin" set pwd "9182kdsldk%ksds" spawn /usr/bin/svn co http://250.250.250.250/svn/...

作者: expert1 发布时间: 11-03

补全IP

http://bbs.chinaunix.net/viewthread.php?tid=1801504 我的脚本: awk -F '[/,]' '{n=split($1,b,".");if(n==2)print $1".0.0/"$2;else if(n==3)print $1".0/"$2}' 来个更猛的,不是我写的,+0的妙用 awk -F/ '{split($1,m,".");print m[1]+0"."m[2]+0"."m[3]+0"."m[4]+0"/"$2}

作者: expert1 发布时间: 11-03

二分查找的awk

本人的回复: awk ' # author :expert1 # last-update:2010-10-18 # function ip2n(ip) { split(ip,a,"."); return a[1]*256^3+a[2]*256^2+a[3]*256+a[4] } NR==FNR{t[$1]=$3;b[$1]=$2;next} { for (i in t) if(ip2n($0)>=i &&ip2n($0) <= t[i]) {print $0 " in\t" b[i];break} }' f2 f1 原文http://bbs.chinaunix.net/viewthread.php?tid=1800516&rpid=12998908&ordertype=...

作者: expert1 发布时间: 11-03

过滤相同的列

本人的脚本 #!/bin/awk -f # author :expert1 #date :2010-10-03 #name :test.awk #USAGE: awk -f test.awk book3 book3 NR==FNR{if(NF==2)a[$1];else a[$1$2$3] } NR>FNR{ for(i in a) { if (split(i,b,"/")>1) {if(($NF==b[1])||($NF==b[2]))print b[1]" / "b[2]"\t"$NF} else {if(($NF==i))print i"\t"$NF} } } 原文链接http://bbs.chinaunix.net/viewthread.php?tid=17...

作者: expert1 发布时间: 11-03

bash shell中的位置参数

$1, $2, $3等等... 位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个变量. 此数目可以任意多,但只有前9个可以被访问,使用shift命令可以改变这个限制。 (具体见Example 4-5 和Example 11-15) $0 $0表示当前执行的进程名,script 本身的名字,或者在正则表达式中表示整行输出 $# 命令行或者是位置参数的个数.(见Example 33-2) $* 所有的位置参数,被作为一个单词....

作者: lbsx 发布时间: 11-03