shell脚本学习指南[五](Arnold Robbins & Nelson H.F. Beebe著)

2019-09-23 09:42:00王振洲

                sub("^[ t]+", "", line) #截去前置空白字符
                sub("[ t]+$", "", line) #截去结尾空白字符
                if(line =="") continue
                n = split(line, parts)
                Suffixes[parts[1]]++
                Replacement[parts[1]] = parts[2]
                for(k=3;k<=n;k++)
                    Replacement[parts[1]] = Replacement[parts[1]] " "
                        parts[k]
            }
            close(file)
        }
    }else{  #载入英文后缀正则表达式的默认表格
        split("'$ 's$ ed$ edly$ es$ ing$ ingly$ ly$ s$", parts)
        for(k in parts){
            Suffixes[parts[k]] = 1
            Replacement[parts[k]] = ""
        }
    }
}

function order_suffixes(i, j, key){
    #以递减的长度排列后缀
    NOrderedSuffix = 0
    for(key in Suffixes)
        OrderedSuffix[++NOrderedSuffix] = key
    for(i=1;i<NOrderedSuffix;i++)
        for(j=i+1;j<=NOrderedSuffix;j++)
            if(length(OrderedSuffix[i]) < length(OrderedSuffix[j]))
                swap(OrderedSuffix, i, j)
}

function report_exceptions(key, sortpipe){
    sortpipe = Verbose ? "sort -f -t: -u -k1,1 -k2n,2 -k3" :
                    "sort -f -u -k1"
    for(key in Exception)
        print Exception[key] | sortpipe
    close(sortpipe)
}

function scan_options(k){
    for(k=1;k<ARGC;k++){