您的位置:首页 > 运维架构 > Shell

在windwos下学习sed和bash脚本

2007-10-03 02:30 288 查看
为了让自己在以后处理类似于把整本《单干》分割成一章一个文件的形式,以便可以方便的转换成语音。这类苦活可以不苦着干,我用这两天学习了sed和bash脚本。

本来想用cmd脚本和sed配合的,不过cmd脚本确实太弱了,用起来不舒适。突然又有些怀念在linux里用bash脚本的日子了。凡是要定期反复做的事情都是悄无声息的自动完成的。呵呵。

那个vbs脚本动不动就要用com,让人看着写着都累。

我在网上找到了一个叫win-bash项目。呵呵。不过,这个项目的目标是在windows上实现一个1.X.X版本的bash,所以没有自动完成,没有很多脚本的语法,不过,实际用的时候只用来解析sh脚本而已。而且,我希望可以脚踩黄河两岸,取windows与linux之众长。呵呵。

我还用GetGUNWin32安装了GUNWin32包。可以用熟悉的rm了。哈哈。sed也包含其中,还有大量的linux下的软件。配合脚本用起来非常方便自如。

下面的就是我的脚本内容,毕竟自己的数学能力只有30分而已,所以写得很难看。不过,能抓“老鼠”就行。

主脚本文件:


#!/bin/bash


#整理文章标题的格式


sed -f temp1.sed 单干.txt >单干2.txt


echo 已生成单干2.txt


#获得文章标题位置


sed -n -e /^第.*章.*/p 单干2.txt >mulu.txt


echo 已生成$head的行号


#获得每一章的开头位置


for head in `cat mulu.txt`


do


sed -n -e /^$head/= 单干2.txt >>head.txt


echo 已生成$head的行号




done




#获得每一章的结尾位置


sed -e 1d head.txt >end.txt


echo 已生成每一章的结尾的行号




#将每一章单独保存为文件




for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14


do


if [ "$i" = "0" ]


then


#处理序言部分


cmd1="sed -n -e 1p head.txt"


end=`$cmd1`


let end=$end-1


title=xuyan


cmd="sed -n -e 1,"$end"p 单干2.txt "


go=`$cmd`


echo $go >$title.txt




continue


elif [ "$i" = "14" ]


then


#处理最后一章


echo 处理最后一章


cmd1="sed -n -e "$i"p head.txt"


head=`$cmd1`


cmd3="sed -n -e "$head"p 单干2.txt"


title=`$cmd3`


cmd="sed -n -e "$head",$p 单干2.txt"


go=`$cmd`


echo $go >$title.txt


continue


else


#处理其它章节


cmd1="sed -n -e "$i"p head.txt"


cmd2="sed -n -e "$i"p end.txt"


head=`$cmd1`


end=`$cmd2`


cmd3="sed -n -e "$head"p 单干2.txt"


title=`$cmd3`


let end=$end-1


cmd="sed -n -e "$head","$end"p 单干2.txt"


go=`$cmd`


echo $go >$title.txt


echo 已经生成$title


continue


fi


done


rm head.txt end.txt 单干2.txt


echo ok!

temp1.sed:
/^第.*章.*/s/ //g

运行结果:
D:/temp>bash temp.sh
已生成单干2.txt
已生成单干mulu.txt
已生成第一章纵览:新型单干模式的行号
已生成第二章成功法则的行号
已生成第三章:时代大转变(THEGREATSHIFTINWHAT'SPOSSIBLE)的行号
已生成第四章做你最善长的的行号
已生成第五章如何建立你的业务系统的行号
已生成第六章有关新公司的谣传的行号
已生成第七章你为什么不适合当一个自由代理商或特许经销商的行号
已生成第八章管理终极外包的行号
已生成第九章从一些创新型公司中得到的经验的行号
已生成第十章评价你的商业计划的行号
已生成第十一章什么时候辞掉你白天的工作的行号
已生成第十二章:资金流动性竞赛的行号
已生成第十三章发现错误-吸取教训的行号
已生成第十四章突然轮到我了的行号
已生成每一章的结尾的行号
已经生成第一章纵览:新型单干模式
已经生成第二章成功法则
已经生成第三章:时代大转变(THEGREATSHIFTINWHAT'SPOSSIBLE)
已经生成第四章做你最善长的
已经生成第五章如何建立你的业务系统
已经生成第六章有关新公司的谣传
已经生成第七章你为什么不适合当一个自由代理商或特许经销商
已经生成第八章管理终极外包
已经生成第九章从一些创新型公司中得到的经验
已经生成第十章评价你的商业计划
已经生成第十一章什么时候辞掉你白天的工作
已经生成第十二章:资金流动性竞赛
已经生成第十三章发现错误-吸取教训
处理最后一章
ok!

D:/temp>

搞定。艺多不压身!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: