在windwos下学习sed和bash脚本
来源:互联网 发布:mac磁盘权限 编辑:程序博客网 时间:2024/06/07 23:21
为了让自己在以后处理类似于把整本《单干》分割成一章一个文件的形式,以便可以方便的转换成语音。这类苦活可以不苦着干,我用这两天学习了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分而已,所以写得很难看。不过,能抓“老鼠”就行。
主脚本文件:
temp1.sed:
/^第.*章.*/s/ //g
运行结果:
D:/temp>bash temp.sh
已生成单干2.txt
已生成单干mulu.txt
已生成第一章纵览:新型单干模式的行号
已生成第二章成功法则的行号
已生成第三章:时代大转变(THEGREATSHIFTINWHAT'SPOSSIBLE)的行号
已生成第四章做你最善长的的行号
已生成第五章如何建立你的业务系统的行号
已生成第六章有关新公司的谣传的行号
已生成第七章你为什么不适合当一个自由代理商或特许经销商的行号
已生成第八章管理终极外包的行号
已生成第九章从一些创新型公司中得到的经验的行号
已生成第十章评价你的商业计划的行号
已生成第十一章什么时候辞掉你白天的工作的行号
已生成第十二章:资金流动性竞赛的行号
已生成第十三章发现错误-吸取教训的行号
已生成第十四章突然轮到我了的行号
已生成每一章的结尾的行号
已经生成第一章纵览:新型单干模式
已经生成第二章成功法则
已经生成第三章:时代大转变(THEGREATSHIFTINWHAT'SPOSSIBLE)
已经生成第四章做你最善长的
已经生成第五章如何建立你的业务系统
已经生成第六章有关新公司的谣传
已经生成第七章你为什么不适合当一个自由代理商或特许经销商
已经生成第八章管理终极外包
已经生成第九章从一些创新型公司中得到的经验
已经生成第十章评价你的商业计划
已经生成第十一章什么时候辞掉你白天的工作
已经生成第十二章:资金流动性竞赛
已经生成第十三章发现错误-吸取教训
处理最后一章
ok!
D:/temp>
搞定。艺多不压身!
本来想用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!
#整理文章标题的格式
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>
搞定。艺多不压身!
- 在windwos下学习sed和bash脚本
- Mongodb 在windwos下安装
- shell脚本学习sed
- bash 脚本学习笔记
- 学习bash脚本
- Bash脚本学习
- Shell脚本学习笔记(七)--sed和awk
- Shell脚本学习笔记(七)--sed和awk
- sed—在linux 中执行脚本的时候出现: /bin/bash^M: bad interpreter: No such file or directory
- sed & bash 学习手记(1)
- BASH学习笔记——sed
- buntu下shell脚本运行异常:bash和…
- sed单行脚本学习笔记
- Shell脚本的学习&&sed
- Bash sed 读和写文件入门
- BASH命令和SHELL脚本总结(17)在BASH中计算两天的间隔天数
- Linux搭建Git服务器 windwos下 Git Bash, TortoiseGit 的使用
- Linux搭建Git服务器 windwos下 Git Bash, TortoiseGit 的使用
- 将CString转换为double(或float)的3种方法
- Linux那些事儿之我是UHCI(3)-物以类聚
- 二叉树的一些操作
- B+树的结构和部分操作的实现
- linux服务器历险之linux性能监控
- 在windwos下学习sed和bash脚本
- 游戏外挂制作技术探讨
- lighttpd(lighty) 性能优化
- Tamino
- 说说 linux 小技巧
- lighttpd 优缺点,与apache比较
- 再说两句话 - mysql 优化问题
- Packages Roundup
- 一种微型计算机实现多重引导的方法