在windwos下学习sed和bash脚本

为了让自己在以后处理类似于把整本《单干》分割成一章一个文件的形式,以便可以方便的转换成语音。这类苦活可以不苦着干,我用这两天学习了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  - - /^ .* .*/ p 单干2 . txt  > mulu . txt
echo 已生成
$head的行号
# 获得每一章的开头位置
for  head in `cat mulu . txt`
do
    sed 
- - /^ $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>

搞定。艺多不压身!
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值