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

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

                Exception[lc_word] = Exception[lc_word] "n" location word
            else
                Exception[lc_word] = location word
            }
}

function strip_suffixes(word, wordlist, ending, k, n, regexp){
    split("", wordlist)
    for(k=1;k<=NOrderedSuffix;k++){
        regexp = OrderedSuffix[k]
        if(match(word, regexp)){
            word = substr(word, 1, RSTART - 1)
            if(Replacement[regexp] == "")
                wordlist[word] = 1
            else{
                split(Replacement[regexp], ending)
                for(n in ending){
                    if(ending[n] =="""")
                        ending[n] = ""
                    wordlist[word ending[n]] = 1
                }
            }
            break
        }
    }
}

function swap(a, i, j, temp){
    temp = a[i]
    a[i] = a[j]
    a[j] = temp
}

又是很长的代码,码的头晕。。。不保证全对,注释也先不写了。执行命令:
$ awk -f spell.awk testfile

这里针对搞算法竞赛的同学说一点,shell脚本里的高效,怎么样叫高效,我也是搞竞赛的,总是追求程序运行时的效率,但是在shell脚本里追求的是总体效率。完成一个任务假如编码时间用了1个小时,最终完成的代码运行花30秒钟,和为了优化程序提高运行效率而编码时间花了2个小时乃至更多时间,最后运行代码时间缩减,无论缩减多少,我们都认为这个优化还是不太值得肯定的。这里不是否定代码运行效率,而是要平衡这个编码时间。而且shell目前我感觉应该是线下运行的程序多,不是在线运行的程序,所以时间上的要求可以放宽很多。所以我们要做的就是完成一个任务花费更少的时间就好。个人感觉,不对了感谢指正。