再见西城 发表于 2015-1-18 11:29:03

Linux教程之送给Shell兄弟姐妹们的节日礼品:用awk来示爱仓酷云

每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此。

[*]送给Shell版兄弟姐妹们的节日礼品

[*]有好一段工夫不来了,怪想人人的。
<br>

[*]

[*]眼看快到十月一了,写了两个awk程序作为礼品送给shell版的兄弟姐妹们,祝人人节日兴奋!

[*]注:若转载请坚持程序的完全,感谢!

[*]程序一:

[*]黑色显现文件程序,每一个字符的色彩都纷歧样,随机变更,让你看花眼睛^_^:

[*]程序代码:

[*]#!/usr/bin/awk

[*]#Writebydbcat

[*]#EMail:deeperbluecat@Gmail.com

[*]#run:awk-fColorCat.awkYourFile

[*]BEGIN{

[*]srand()

[*]split($0,Myth,"")

[*]ColorPrint(Myth,length($0))

[*]functionColorPrint(Myth,xlen)

[*]for(i=1;i<=xlen;i++)

[*]Color="33[1;"int(31+7*rand())

[*]printf"%s;3m%s33

[*]}

[*]printf"
"

[*]程序二:

[*]黑色作图程序,有点像Gnuplot,能够作出圆形,正弦图,抛物线等等。

[*]比方:

[*]圆:awkBEGIN{while(k<10){printsin(k),cos(k);k=k+0.01}}|awk-fColorPlot.awk

[*]正弦线:awkBEGIN{while(k<10){printsin(k),k;k=k+0.01}}|awk-fColorPlot.awk

[*]抛物线:awkBEGIN{k=-10;while(k<10){printk^2,k;k=k+0.01}}|awk-fColorPlot.awk

[*]直线:paste<(seq10.0110)<(seq10.0110)|awk-fColorPlot.awk

[*]假如你有设想力的话还能够作出良多意想不到的图形,好比:

[*]圆盘:awkBEGIN{while(k<100){printsin(k),rand()*cos(k);k=k+0.01}}|awk-fColorPlot.awk

[*]花圈:awkBEGIN{srand()

[*]while(k++<20000){

[*]x=2-3*rand()

[*]y=2-4*rand()

[*]if(x^2+y^2>0.6&&x^2+y^2<1||x^2+y^2<0.3&&x^2+y^2>0.1)

[*]printx,y

[*]}

[*]}|awk-fColorPlot.awk

[*]菱圈:awkBEGIN{srand()

[*]while(k++<20000){

[*]x=1-2*rand()

[*]y=1-2*rand()

[*]if(x+y<=1&&x-y<=1&&-x+y<=1&&-x-y<=1&&x^2+y^2>=1/2)

[*]printx,y

[*]}

[*]}|awk-fColorPlot.awk

[*]程序代码:

[*]#!/usr/bin/awk

[*]#GAWK黑色作图程序

[*]#作者:dbcat

[*]#Email:deeperbluecat@Gmail.Com

[*]#日期:2006-9-25

[*]#测试情况:Gawk3.1.4,bash3.00.16(1),SUSE9.3

[*]#运转办法:awkBEGIN{while(k<10){printsin(k),cos(k);k=k+0.01}}>datafile

[*]#awk-fColorPlot.awkdatafile

[*]BEGIN{

[*]srand()

[*]xlen=35

[*]ylen=35

[*]InitGraph(Myth,xlen,ylen)

[*]X_Max=X_Max>$1?X_Max:$1

[*]X_Min=X_Min<$1?X_Min:$1

[*]Y_Max=Y_Max>$2?Y_Max:$2

[*]Y_Min=Y_Min<$2?Y_Min:$2

[*]X_Label=$1

[*]Y_Label=$2

[*]END{

[*]CreateGraph(Myth,NR)

[*]PrintGraph(Myth)

[*]functionInitGraph(Myth,xlen,ylen,i,j)

[*]for(i=1;i<=xlen;i++)

[*]for(j=1;j<=ylen;j++)

[*]Myth=""

[*]functionCreateGraph(Myth,Len,i)

[*]for(i=1;i<=Len;i++)

[*]{

[*]X_Label=int((X_Label-X_Min)/(X_Max-X_Min)*(xlen-1)+1)

[*]Y_Label=int((Y_Label-Y_Min)/(Y_Max-Y_Min)*(ylen-1)+1)

[*]Myth,Y_Label]=int(40+60*rand())

[*]}

[*]functionPrintGraph(Myth,i,j)

[*]for(i=1;i<=xlen;i++)

[*]for(j=1;j<=ylen;j++)

[*]color="33[1;"int(31+7*rand())

[*]printf"%s;1m%c33

[*]}

[*]printf"
"

[*]}

[*]}

awkBEGIN{while(u<20){printsin(u)*sin(v),cos(u)*sin(v+u);v=v+0.01;u=u+0.01}}|awk-fColorPlot.awk
发生的就是一个心^_^


<br>
感激waker版主加精^_^

再多供应人人几个风趣的图形:


[*]爱心型

[*]awkBEGIN{while(u<20){printsin(u)*sin(v),rand()*cos(u)*sin(v+u);v=v+0.01;u=u+0.01}}

[*]绳结

[*]awkBEGIN{while(u<10){printsin(u+v)*sin(v),cos(u+v)*sin(v);v=v+0.01;u=u+0.01}}

[*]胡蝶

[*]awkBEGIN{while(u<10){printsin(u+v)*sin(v),cos(u)*sin(v);v=v+0.01;u=u+0.01}}

[*]花瓣

[*]awkBEGIN{while(u<10){printsin(u+w)*cos(v)*sin(w+u),sin(u)*sin(v+u)*sin(w);v=v+0.01;u=u+0.01;w=w+0.01}}

[*]蝙蝠

[*]awkBEGIN{while(u<10){printsin(u+w)*cos(v+w)*sin(w+u),sin(u)*sin(v+u)*sin(w);v=v+0.01;u=u+0.01;w=w+0.01}}

[*]螺旋

[*]awkBEGIN{while(w<20){printsin(w)*w,cos(w)*w;w=w+0.01}}
这个绘图程序的运转是如许的:
先发生预处置数据,如你下面给出的。主程序再使用这些数据举行描点绘图。
我8楼的代码发生的是预处置数据,你必要用ColorPlot.awk(即程序二)来处置一下。
比方胡蝶形:
awkBEGIN{while(u<10){printsin(u+v)*sin(v),cos(u)*sin(v);v=v+0.01;u=u+0.01}}|awk-fColorPlot.awk
另有两个很大度的图形:


[*]花蕊

[*]awkBEGIN{while(u<10){printsin(u)*cos(v+u)*sin(u+v),cos(v+u)*cos(u)*sin(v+u);v=v+0.01;u=u+0.01}}|awk-fColorPlot.awk

[*]铰剪

[*]awkBEGIN{while(u<10){printsin(u+v)*cos(v+u)*sin(u+v),cos(v+u)*cos(u)*sin(v+u);v=v+0.01;u=u+0.01}}|awk-fColorPlot.awk


<br>


如果你只是想应付一下操作系统的课程,劝你最好别学,或者说不要指望能用的怎么样。

爱飞 发表于 2015-1-21 07:47:16

下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。

飘灵儿 发表于 2015-1-22 13:47:38

放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。

兰色精灵 发表于 2015-1-25 11:46:37

随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。

蒙在股里 发表于 2015-2-2 21:55:46

让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?

乐观 发表于 2015-2-3 12:34:34

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一。

老尸 发表于 2015-2-9 00:28:27

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

仓酷云 发表于 2015-2-16 22:15:21

通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。?

再现理想 发表于 2015-2-24 06:46:35

对我们学习操作系统有很大的帮助,加深我们对OS的理解。?

海妖 发表于 2015-3-7 11:45:53

为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?

若相依 发表于 2015-3-15 02:49:20

学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。

金色的骷髅 发表于 2015-3-21 16:06:53

让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?
页: [1]
查看完整版本: Linux教程之送给Shell兄弟姐妹们的节日礼品:用awk来示爱仓酷云