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

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

    if(Dictionaries == ""){ #使用默认目录列表
        DictionaryFiles["/usr/dict/words"]++
        DictionaryFiles["/usr/local/share/dict/words.knuth"]++
    }else{
        split(Dictionaries, files)
        for(key in files)
            DictionaryFiles[files[key]]++
    }  
}

function initialize(){
    NonWordChars = "[^"
        "'"
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        "abcdefghijklmnopqrstuvwxyz"
        "241242243244245246247248249250"
        "251252253254255256257258259260"
        "261262263264265266267268269270"
        "271272273274275276277278279280"
        "281282283284285286287288289290"
        "291292293294295296297298299300"
        "301302303304305306307308309310"
        "311312313314315316317318319320"
        "321322323324325326327328329330"
        "331332333334335336337338339340"
        "341342343344345346347348349350"
        "351352353354355356357358359360"
        "361362363364365366367368369370"
        "371372373374375376377"
    get_dictionaries()
    scan_options()
    load_dictionaries()
    load_suffixes()
    order_suffixes()
}

function load_dictionaries(file, word){
    for(file in DictionaryFiles){
        while((getline word < file) > 0)
            Dictionary[tolower(word)]++
            close(file)
    }
}

function load_suffixes(file, k, line, n, parts){
    if(NSuffixFiles > 0){      #自文件载入后缀正则表达式
        for(file in SuffixFiles){
            while((getline line  < file ) > 0){
                sub(" *#.*$","",line) #截去注释