打印斐波那契序列的sed脚本

将这个脚本放在这里基于两个目的: 这个脚本中用了许多的循环结构可作为上一篇的补充。 同时这一篇用了模拟的数字运算——了解这种运算方法有助于以后学习一些经典的sed脚本或写出自已的算术脚本 by hq00e # 打印斐波那契序列 # 文件名:fib.sed # 调用:seq 10 | sed -f fib.sed # 打印前10个数字 # yes | sed -f fib.sed # 打印序列直到溢出 # 这个脚本用模拟的方式进行数字运算。有关这种方法的更 # 多细节可以参考Greg Ubben写的教程: # http://sed.sourceforge.net/grabbag/tutorials/ 1{ # 下面字母串的长度决定了可打印的序列长度 # 可以修改下面的字串使之支持更多的序列 # s/.*/zyxwvutsrqponmlkjihgfedcba/ s/.*/kjihgfedcba/ # 初始化序列为“1, 1” s/.*/ &a &a /; h; d } # 从hs取最后两组数字串进行运算 g s/.* […]

Posted at 9:50 pm on January 28, 2006 | Leave a comment | Filed Under: sed | Continue reading

sed中的循环结构

Table of Contents sed中的循环结构 在sed中进行判断 用holdspace储存标志位 用pattern space储存标志位 用地址进行判断 用式样进行判断 循环常用的命令解析 b/t控制循环 退出条件 d/D控制循环 标志位控件循环 N作为退出条件 实例 Up: (dir) sed中的循环结构 这篇文章粗略地总结了一些在sed进行循环操作的方法。的确是很粗糙但为了在农历年前放上就不管那么多了。 by hq00e 一些缩写 ps=pattern space,式样空间 hs=hold space,保留空间 regexp=regular expression, 正则表达式 循环都可以写为条件转移的形式。如C语言中的if加goto的形式,但这与结构化编程的思想相违背。因而C语言中通常用for\while来写循环语句。但在被编译后程序的机器代码仍是以条件转移的形式出现的。sed没有专门的循环语句,但提供了转移的命令,因而我们仍然可以实现循环。本篇中总结用sed进行循环的几种方式。sed处理文本的方式本身就是一种循环: do while not EOF read line … do sth end do。 Next: sect2, Up: Top 在sed中进行判断 因为sed只处理字符和行号,它只能通过式样来作字串的匹配判断或者对行号进行判断。所以判断的条件需要以字串或行号的形式出现。 用holdspace储存标志位 在hs中存储字串作为标志位,如: # 进行6次操作 1{x; s/^/654321/; x} :a x; […]

Posted at 9:43 pm on January 28, 2006 | Leave a comment | Filed Under: sed | Continue reading

About

hq00e不是hqOOe也不是hqooe

Categories