zoukankan      html  css  js  c++  java
  • 简单的三道shell例题

    problem:

    1、	输入一个ip列表文件,文件每行为以tab键分隔的两列,分别为一个ip段的起始ip和结束ip,ip均为点分形式。要求将该文件中各ip段包含的每一个有效ip以非点分形式输出到一个文件中。
    例如:
    输入文件内容如下:
    66.111.22.1	66.111.22.3
    123.1.1.123	123.1.1.123
    1.1.1.1	1.1.2.1
    则要求输出文件内容为:
    066111022001
    066111022002
    066111022003
    123001001123
    001001001001
    001001001002
    001001001003
    001001001004
    ……
    001001001125
    001001002001
    
    #!bin/awk
    function getnum(A)
    {
        flag = 0;
        for(i=0;i<=4;i++)
            array[i] = 0;
        test = ".";
        for(i=1;i<=length(A);i++){
            if(substr(A,i,1) == test){
                flag = flag + 1;
            }else{
                array[flag] = array[flag] * 10 + (0 + substr(A,i,1));
            }
        }
        p = 1;
        ans = 0;
        for(i=3;i>=0;i--){
            array[i] = array[i] - 1;
            ans = ans + array[i] * p;
            p = p * 125;
        }
        return ans;
        
    }
    
    function returnnum(i)
    {
        num = 0 + i;
        d = 125;
        p = d*d*d;
        a = int(num / (d*d*d));
        b = int((num - a * d*d*d) / (d*d))
        c = int((num - a * d*d*d - b * d*d) / d)
        d = int(num - a * d*d*d - b * d*d - c * d)
        printf "%03d%03d%03d%03d
    ",a+1,b+1,c+1,d+1
    }
    
    BEGIN {
    
    }
    
    {
        l = getnum($1);
        r = getnum($2);
        for(i=l;i<=r;i++){
            returnnum(i);
        }
    }
    
    END{
        
    }
    
    2、2G文件每行一个url,去掉重复的,并保持顺序。
    
    3、将目录ABC下及其子目录下所有*.txt文件按小时改名备份,如a.txt.2008080815表示a.txt是08年8月8日下午3点到4点生成的
  • 相关阅读:
    经典算法之七大排序
    Memcached在Asp.NET中的使用
    利用memcached构建高性能的Web应用程序(转)
    C# 反射机制
    数据库事务设置保存点
    C# 串口通信总结
    某投注网站的BUG
    浙江电信网上营业厅的一个BUG(有更新)
    解决DESCryptoServiceProvider加解密时弱密钥异常
    ASP.NET自定义控件开发示例(二)
  • 原文地址:https://www.cnblogs.com/qscqesze/p/6774125.html
Copyright © 2011-2022 走看看