Re: 求助,shell脚本的编写
发表于 : 2011-12-11 20:45
将16章的每个字与前面所有章节的字进行比较,看有没有相同。。。。。。。。。到了后来就是将40章、50章与前面的所有章比较fnan 写了:实际上是简单的事情,不过就一个txt文件吧,怎样分辨16章15章的,只有一行一行而已,还是说任何地方找到任何相同的字标出来?(与贴出来的古字比较就不会了,看不懂古字)
将16章的每个字与前面所有章节的字进行比较,看有没有相同。。。。。。。。。到了后来就是将40章、50章与前面的所有章比较fnan 写了:实际上是简单的事情,不过就一个txt文件吧,怎样分辨16章15章的,只有一行一行而已,还是说任何地方找到任何相同的字标出来?(与贴出来的古字比较就不会了,看不懂古字)
额~~~我就是只需要那个daodejing文本文件中的对比~减少重复的所对应古字的搜索。比如“挫其锐解其纷和其光同其尘”,在第4章有了,后面的56章也有,那么我在第56章的时候就不用再去相应网站搜索这些字了fnan 写了:真是图片的,这要先图片识别出古字,再比较txt文件,虽说不是做不到,真的难度非常高,(不会古字的免提,还有谁愿意公开这种算法?)不如每个图片为一个文件,用现代汉字命名,比如图片 ‘道‘ 就是文件 道.png
处理好字再按照字生成图片文件,比较现实。
#必须先说明是拿什么跟txt文件对比,是图形还是文字,如果是文字,它们在那里?如果是图形,应该明白图形不能直接跟文字对比。思考者 写了:额~~~我就是只需要那个daodejing文本文件中的对比~减少重复的所对应古字的搜索。比如“挫其锐解其纷和其光同其尘”,在第4章有了,后面的56章也有,那么我在第56章的时候就不用再去相应网站搜索这些字了fnan 写了:真是图片的,这要先图片识别出古字,再比较txt文件,虽说不是做不到,真的难度非常高,(不会古字的免提,还有谁愿意公开这种算法?)不如每个图片为一个文件,用现代汉字命名,比如图片 ‘道‘ 就是文件 道.png
处理好字再按照字生成图片文件,比较现实。
额,我想展示下成果fnan 写了:想了两天,终于大概明白LZ的意图,比如第1到15章的文字已经找到对应的古字图片,第16章的前30行也是,第31行开始与前面的比较,找出已有的汉字。
那么把图片文件贴上来干什么,不如贴1到15其中一两章。
#原来是单文件,那就更简单了,我给出的是多文件与任意行混合,简化一下就可以。思考者 写了:额,我想展示下成果fnan 写了:想了两天,终于大概明白LZ的意图,比如第1到15章的文字已经找到对应的古字图片,第16章的前30行也是,第31行开始与前面的比较,找出已有的汉字。
那么把图片文件贴上来干什么,不如贴1到15其中一两章。是每一行一章,跟图片完全无关
在每一章中,逐字与前面所有章的所有字比较,比如第16章中,从第一个字到最后一个字都要与前面15章的所以字比较,类似的,在第54章中,也要从第一个字到最后一个字都要与前面53章的所以字比较,第81章中,要与前面80章的所有字比较,你在下面写的那个看着好像是
代码: 全选
cloudy@cloudy-laptop:~/tmp/shell$ cat moder-ddj.sh
#!/bin/bash
File=/home/cloudy/tmp/ddj.txt
arry=($(head -16 $File))
for i in $(sed '17!d;s/./& /g' $File )
do
printf "$i "
for n in ${!arry[@]}
do
if [[ ${arry[$n]} == ""*$i*"" ]]
then
printf "$((n+1)) "
fi
done
echo
echo
done > 17ddj
awk '{if($2 != "") {printf $1 "\t" $2 "\n\n"}}' 17ddj > 17
exit 0
代码: 全选
#!/bin/bash
File=~/ddj.txt
for l in {16..81}
do
arry=($(head -$(($l-1)) $File))
for i in $(sed "${l}!d;s/./& /g" $File )
do
for n in ${!arry[@]}
do
if [[ ${arry[$n]} == ""*$i*"" ]]
then
echo "$i $((n+1))"
echo
break
fi
done
done > $l
echo "$l/81"
done