|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
[ 作者: Linux联盟收集 加入时间:2006-09-10 22:39:54 来自:Linux联盟收集
] | |
|
换字符串的脚本trans_par.pl,它可以把unix下文本文件里出现的字符进行替换,生成新的.new文件。sFELinux联盟 ----------------------------------------------------------------------------------------------sFELinux联盟 #!/usr/bin/perlsFELinux联盟 # parameter_0 is filenamesFELinux联盟 # parameter_1 is source char will be replaced sFELinux联盟 # parameter_2 is target charsFELinux联盟 sFELinux联盟 $filename=$ARGV[0];sFELinux联盟 $filecontent='';sFELinux联盟 sFELinux联盟 undef $/;sFELinux联盟 sFELinux联盟 open(FH,$filename);sFELinux联盟 $filecontent = ;sFELinux联盟 close FH;sFELinux联盟 sFELinux联盟 $filecontent =~ s/$ARGV[1]/$ARGV[2]/g;sFELinux联盟 sFELinux联盟 open(FH,">${filename}.new");sFELinux联盟 print FH $filecontent;sFELinux联盟 close FH; sFELinux联盟 ----------------------------------------------------------------------------------------------sFELinux联盟 sFELinux联盟 调用方式举例:sFELinux联盟 sFELinux联盟 $cat a.txtsFELinux联盟 sFELinux联盟 1234 1234sFELinux联盟 1234 * 4321sFELinux联盟 sFELinux联盟 $./trans_par.pl a.txt '12' '78' sFELinux联盟 sFELinux联盟 $cat a.txt.newsFELinux联盟 sFELinux联盟 7834 7834sFELinux联盟 7834 * 4321 sFELinux联盟 sFELinux联盟 文件名取子串的方法:sFELinux联盟 sFELinux联盟 after_file_name=`echo $file_name|awk '{print substr($file_name,1,12)}'`sFELinux联盟 sFELinux联盟 pre_file_name=`echo $file_name|awk '{print substr($file_name,1,2)}'`sFELinux联盟 sFELinux联盟 Unix格式文件转换成Dos格式文件:sFELinux联盟 sFELinux联盟 unix2dos -q -k filenamesFELinux联盟 sFELinux联盟 Dos格式文件转换成Unix格式文件:sFELinux联盟 sFELinux联盟 dos2unix -q -k filenamesFELinux联盟 sFELinux联盟 根据定时生成的文本文件字节数是否一样来判断程序是否运行正常,如果一段时间内数据没有变化,发邮件通知.sFELinux联盟 ----------------------------------------------------------------------------------------------sFELinux联盟 cd /beijingsFELinux联盟 sFELinux联盟 dt2=`date --date '10 minutes ago' "+%Y%m%d%H%M00"`;export dt2sFELinux联盟 filename2=english_company_name_$dt2.txt;export filename2sFELinux联盟 ls -l $filename2>filename2.txtsFELinux联盟 cat /beijing/filename2.txt|awk '{print $5}'>size2.txtsFELinux联盟 sFELinux联盟 dt1=`date --date '5 minutes ago' "+%Y%m%d%H%M00"`;export dt1sFELinux联盟 filename1=english_company_name_$dt1.txt;export filename1sFELinux联盟 ls -l $filename1>filename1.txtsFELinux联盟 cat /beijing/filename1.txt|awk '{print $5}'>size1.txtsFELinux联盟 sFELinux联盟 dt0=`date "+%Y%m%d%H%M00"`;export dt0sFELinux联盟 filename0=english_company_name_$dt0.txt;export filename0sFELinux联盟 ls -l $filename0>filename0.txtsFELinux联盟 cat /beijing/filename0.txt|awk '{print $5}'>size0.txtsFELinux联盟 sFELinux联盟 echo 'file is ok'sFELinux联盟 sFELinux联盟 filename2_size=`cat /beijing/size2.txt`;export filename2_sizesFELinux联盟 filename1_size=`cat /beijing/size1.txt`;export filename1_sizesFELinux联盟 filename0_size=`cat /beijing/size0.txt`;export filename0_sizesFELinux联盟 sFELinux联盟 echo $filename2_sizesFELinux联盟 echo $filename1_sizesFELinux联盟 echo $filename0_sizesFELinux联盟 sFELinux联盟 if [ -z $filename2_size ] || [ -z $filename1_size ] || [ -z $filename0_size ]; thensFELinux联盟 echo 'no such files'sFELinux联盟 elsesFELinux联盟 if [ $filename2_size -eq $filename1_size ] && [ $filename1_size -eq $filename0_size ]; thensFELinux联盟 echo 'something is wrong,please look at'sFELinux联盟 cat /beijing/bin/error.txt /beijing/filename* >/beijing/error_mail.txtsFELinux联盟 mail -s 'alert mail' maggiefengyu@mail.china.com </beijing/error_mail.txt > /dev/null 2>&1sFELinux联盟 elsesFELinux联盟 echo 'everything is ok'sFELinux联盟 fi sFELinux联盟 fisFELinux联盟 ----------------------------------------------------------------------------------------------sFELinux联盟 说明:/beijing/bin/error.txt 文件为邮件正文部分 sFELinux联盟 sFELinux联盟 unix shell 里面比较字符写法: (我经常不记得,用的时候需要找文档, 现在把它们列出来)sFELinux联盟 sFELinux联盟 -eq 等于 -z 空串 sFELinux联盟 -ne 不等于 = 两个字符相等 sFELinux联盟 -gt 大于 != 两个字符不等sFELinux联盟 -lt 小于 -n 非空串sFELinux联盟 -le 小于等于 sFELinux联盟 -ge 大于等于sFELinux联盟 sFELinux联盟 命令的执行顺序符号: sFELinux联盟 sFELinux联盟 命令1 && 命令2sFELinux联盟 sFELinux联盟 &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;sFELinux联盟 换句话说,“如果这个命令执行成功&&那么执行这个命令”。sFELinux联盟 sFELinux联盟 命令1 || 命令2sFELinux联盟 sFELinux联盟 如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);sFELinux联盟 或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”sFELinux联盟 sFELinux联盟 文件状态测试符号:sFELinux联盟 sFELinux联盟 -d 目录 -s 文件长度大于0、非空sFELinux联盟 -f 正规文件 -w 可写sFELinux联盟 -L 符号连接 -u 文件有suid位设置sFELinux联盟 -r 可读 -x 可执行 sFELinux联盟 sFELinux联盟 测试文件状态是否为OK,但是有时要比较两个文件状态。shell提供三种逻辑操作完成此功能:sFELinux联盟 sFELinux联盟 -a 逻辑与,操作符两边均为真,结果为真,否则为假。sFELinux联盟 -o 逻辑或,操作符两边一边为真,结果为真,否则为假。sFELinux联盟 ! 逻辑否,条件为假,结果为真。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|