发布新日志

  • unix下find常用命令

    2010-02-05 17:40:43

     

    1,列出某个目录下的所有文件(包括子目录)

    find 目录名 -type f

    2.只列出目录

    find 目录名 -type d

    3.列出某目录下(包括子目录)下文件名包含某串的文件

    find 目录名 -type -f -name "*string*"

  • awk学习笔记二

    2008-11-11 14:42:32

    将一个文件中重复的行打印出来:
    awk 'seen[$0]++ == 1' <filename>

    Sample input file:
    eins
    deux
    drei
    quattro
    deux
    sechs
    drei
    acht
    huit
    neuf
    six
    deux

    The output:
    deux
    drei

    统计某个路径下所有文件的大小:
    ls -l | awk '{sum+=$5} END {print sum}'


     

  • awk 学习笔记

    2008-04-15 20:28:08

    数据样本

    subdate score       url

    2006-04-01     4299        http://aaa.163.com/111.html

    2006-04-01     6999        http://aaa.163.com/121.html

    2006-04-02     7899        http://aaa.163.com/131.html

    2006-04-02     4999        http://aaa.163.com/141.html

    2006-04-02     8999        http://aaa.163.com/151.html

    2006-04-04     9999        http://aaa.163.com/161.html

    2006-04-04     8999        http://aaa.163.com/171.html

    2006-04-05     4999        http://aaa.163.com/181.html

     

     

    提取

    仅列出 2006-04-01 所有信息
    { if ($1 == “2006-04-01”) print $0 }

    仅列出 URL信息。
    { print $3 }

     

    仅列出 日期信息,要求不可重复。
    { dtList[$1]++ } END { for (dtStr in dtList) print dtStr}

     

    统计

    统计 每天 出现的URL数量
    { dtList[$1]++ } END { for (I in dtList) print dtList[i] “\t” I }

    统计 每天 出现的score > 5999 URL数量
    加上 if ($2 > 5999)

     

    计算 2006-04-01 所有 score 总和。
    { total+=$2 } END { print “total ”  total }

     

    计算 2006-04-01 score 平均值。
    BEGIN{total=0;count=0}{ total += $2; count++; } END { print “avg:” total/count }

     

    显示每个字段信息。

    awk '{      for (i=1;i<=NF; i++)        print “$” i ":\t" $i }‘

    计算某列的和(该列为数字):

    awk 'BEGIN{sum=0}{sum+=$2}END{print sum}'

    在某行前加上某个字符串

    awk '{printf "data/news/newsbuffer3-060904_dataDir/";printf $0;printf "\n";}' ./perf.list > l.txt
    提取出最后一列
     cat performance.list |awk '{print $NF}' >>perf.list
  • shell脚本常见问题

    2008-03-12 14:29:41

    1. 给变量赋值的时候,等号=前后不能有空格。
      username='aaa' right
      username = 'aaa' wrong.
    2. 获得上一个命令执行的结果:$?
    3. 获得当前执行的命令:$0
    4. 获得参数的数量:$#
    5. 设定某一个参数的默认值:
      waitTime=${3:-10} 如果给定了$3,则取$3的值。如果没有,则取10
    6. if 判断的时候,左右中括弧[]都需要有空格。
    7. then 如果和 if 写在一行,需要有;隔开。 if [  ] ; then
    8. 逻辑与或的写法:
      if [ $condition1 ] && [ $condition2 ]或 
      if [ $condition1 -a $condition2 ]
    9. 字符串和数字比较符是不一样的。
      数字比较用 -eq -lt -gt等。字符串使用'=='
Open Toolbar