sedsed -- sed分析工具
sedsed -- sed分析工具[@more@]官方主页:http://sedsed.sourceforge.net/介绍文章:http://bruceshaw.blog.51cto.com/145356/533342例子:gzdev02:bill:~/home/bill $ cat 3.txt1 AAAA2BBBBBA4567ddddgzdev02:bill:~/home/bill $ gzdev02:bill:~/home/bill $ sedsed -d -e 'N;$!D' 3.txtPATT:1 AAAA$HOLD:$COMM:NPATT:1 AAAAn2BBBBB$HOLD:$COMM:$ !DPATT:2BBBBB$HOLD:$COMM:NPATT:2BBBBBnA$HOLD:$COMM:$ !DPATT:A$HOLD:$COMM:NPATT:An4$HOLD:$COMM:$ !DPATT:4$HOLD:$COMM:NPATT:4n5$HOLD:$COMM:$ !DPATT:5$HOLD:$COMM:NPATT:5n6$HOLD:$CO
tar命令参数列表
1.压缩一组文件为tar.gz后缀。 # tar cvf backup.tar /etc #gzip -q backup.tar 或 # tar cvfz backup.tar.gz /etc/[@more@]2.释放一个后缀为tar.gz的文件。 #gunzip backup.tar.gz #tar xvf backup.tar 或 # tar xvfz backup.tar.gz 3.用一个命令完成压缩 #tar cvf - /etc/ | gzip -qc > backup.tar.gz 4.用一个命令完成释放 # gunzip -c backup.tar.gz | tar xvf - 5.如何解开tar.Z的文件? # tar xvfz backup.tar.Z 或 # uncompress backup.tar.Z #tar xvf backup.tar 6.如何解开.tgz文件? #gunzip backup.tgz
shift和case的的联合运用
使用shift和case,对输入参数进行判断,赋值等.下面是例子[@more@]if [ $# -lt 2 ];thenecho " usage: `basename $0` -b <BJobDate: yyyymmdd> -s <StartRptDate yyyymmdd> -e <EndRptDate yyyymmdd>"echo " For example: `basename $0` -b 20090501 -s 20090510 -e 20090520"echo " For example: `basename $0` -s 20090510 -e 20090520"echo " For example: `basename $0` -b 20090501"exit 0;elseuntil [ $# -eq 0 ]docase $1 in-b) bflag=$1; brundate=$2; shift 2;;-s)
巧妙的检查日期方法
巧妙的检查日期方法[@more@]#! /bin/bashisdate(){ cal $2 $1 2>/dev/null | grep -wq "${3#0}" && return 0 || return 1}line=$(head -1 urfile)linenum=${line:35:4}realnum=$(($(wc -l < urfile)-1))isdate ${line:2:4} ${line:6:2} ${line:8:2} || { echo "first date is wrong !"; exit 1; }isdate ${line:14:4} ${line:18:2} ${line:20:2} || { echo "second date is wrong !"; exit 1; }[ $linenum -eq $realnum ] 2>/dev/null || { echo "line num is wrong !";
SHELL 写的旋转进度指针
chinaunix上发现的,很有意思.收录下来[@more@]drawper (){_per=`expr $1 * 100 / $2`case `expr $_per / 4 % 4` in0) _char="|" ;;1) _char="/" ;;2) _char="-" ;;3) _char="" ;;esacprintf "r$_char $_per%%"if [ $1 -eq $2 ];thenprintf "n"fi}i=1while [ $i -le 100 ]dodrawper $i 100i=`expr $i + 1`done
shell用法例子
从chinaunix上看到网友贴出的问题,也跟着做一下,就当练手有一个文件是QQ号到手机号的绑定关系,一行一个关系,格式如下:11235334:13443253456。然后统计出每个QQ绑定了几个手机,输出到一个文件里。格式如下:[11235334]1345454345413643543544[23432423]13654645542awk解决:awk -F"[ \t]*:[ \t]*" '{a[$1]=a[$1]"\n"$2;sum[$1]++} END{for(i in a){print i"\n"a[i]"n"sum[i]}}' urfile[@more@]
date -d选项用法
date -d选项可以进行日期运算,用法如下:前一天date +%Y%m%d -d "20090703 +1day"后一天date +%Y%m%d -d "20090703 -1day"前一年date +%Y%m%d -d "20090703 -1year"date +%Y%m%d -d "2007/02/12 -1 month -1 year -24 day "[@more@]