+ -
当前位置:首页 → 问答吧 → 脚本生成脚本的一个错误

脚本生成脚本的一个错误

时间:2011-12-11

来源:互联网

shell脚本没有学好,直接求助。。

问题来源:我最近在搞字源,虽然那些网站上的字源也不完整,但聊胜于无。我准备先从《道德经》开始。已经弄好了2章字源版《道德经》,附件中的daodejing是我把网上通用流传的《道德经》去掉所有标点后的文件。

附件:

古道德经1.png [ 89.61 KiB | 被浏览 52 次 ]



需求:从第16章开始,也就是附件daodejing中的31行“致虚极守静笃”开始,将每一个汉字与前面所有章的所有汉字对比,如果有相同的,则最后显示哪个字在第几章有相同的;如果没有相同的则什么都不显示。比如“致”在与前面15章的字对比后没有相同的,则最后什么都不显示,而“虚”在第5章中有出现,则最后显示第16章的“虚”在第5章中出现过。前面15章我自己手工校对过,真是累死人了

实现:本来是想用read一个汉字一个汉字的读,我看到过帮助,好像是可以读字符(nchars),但最后始终不能实现。故后来又想先用附件中的daodejing将每一章生成一个文件ddj[1-81],然后将每一章生成的一个文件ddj[1-81]用cut命令搞成一个汉字一行来读并重新覆盖原文件,然后再将它们合并,就成了一个汉字一行的daodejing。然后再从每章的文件中循环读一行(一个汉字)与合并后的daodejing循环比较,然后按照需求中的显示要求来显示。

最后,代码。。。由于我才刚开始学,很多都还搞不懂,而这个又迫在眉睫 求助阿帮忙阿
附件:
文件注释: 扩展名其实是docx,但是论坛禁止,我就直接去掉了x,不能打开的话加个x就可。
道德经2.doc [160.49 KiB]
还未被下载
文件注释: 扩展名其实是docx,但是论坛禁止,我就直接去掉了x,不能打开的话加个x就可。
古道德经1.doc [72.72 KiB]
还未被下载
daodejing.txt [15.51 KiB]
被下载 1 次
道德经2.pdf [586.5 KiB]
还未被下载
古道德经1.pdf [479.69 KiB]
还未被下载

作者: 思考者   发布时间: 2011-12-11

很有挑战性呀!
我的思路是:不要从文本文件里面读了,而是把“道德经”的内容当字符串,直接写进shell中,赋值给几个变量,然后对变量进行操作。

作者: ljj_jjl2008   发布时间: 2011-12-11

这个……
支持支持

作者: sunfish   发布时间: 2011-12-11

我了个去哦,没思路

作者: 枫叶饭团   发布时间: 2011-12-11

ljj_jjl2008 写道:
很有挑战性呀!
我的思路是:不要从文本文件里面读了,而是把“道德经”的内容当字符串,直接写进shell中,赋值给几个变量,然后对变量进行操作。

每章一个字符串?再搞成数组样的?

作者: 思考者   发布时间: 2011-12-11

思考者 写道:
ljj_jjl2008 写道:
很有挑战性呀!
我的思路是:不要从文本文件里面读了,而是把“道德经”的内容当字符串,直接写进shell中,赋值给几个变量,然后对变量进行操作。

每章一个字符串?再搞成数组样的?

就是这个意思。不过字符串好像有长度限制,注意不要超长。

作者: ljj_jjl2008   发布时间: 2011-12-11

grep好像用处挺大的

作者: 枫叶饭团   发布时间: 2011-12-11

枫叶饭团 写道:
grep好像用处挺大的

是哦,不过grep啥?要循环比较,都得单字赋值

作者: 思考者   发布时间: 2011-12-11

挨着一个字一个字的赋值,然后给grep当参数。。。这样子感觉要简单些

作者: 枫叶饭团   发布时间: 2011-12-11

枫叶饭团 写道:
挨着一个字一个字的赋值,然后给grep当参数。。。这样子感觉要简单些

应该还有3000多4000个字左右,可以grep "$char"这种?

作者: 思考者   发布时间: 2011-12-11