genesis脚本编写10
- 格式:pdf
- 大小:409.26 KB
- 文档页数:6
1. switch 的用法,注意每一个case 必须要以breaksw 结尾否则会继续执行下一个case 的命令(1) 另外,$< 的意思是取得使用者的stand input(2) echo 若加上-n 的选项,则游标会停留在该行最后echo -n "Input one color: "set STOPLIGHT = $<switch ($STOPLIGHT)case red:echo "red"breakswcase orange:echo "orange"breakswcase green:echo "green"breakswdefault:echo "you input $STOPLIGHT"endsw--------------------------------------------------------------------2. 利用set 来取得变数,set ABC = "I am ABC"也可以利用`command` 来取得命令且外,case 也可以用万用字元* 来代替set VER = `uname -r`switch ($VER)case 5.5:echo "run the setup of $VER"breakswcase 5.3:echo "run the setup of $VER"breakswcase 5.*:echo "like 5.x"breakswcase 4.*:echo "like 4.x"breakswdefault:echo "no idea"endsw-------------------------------------------------------------------- 3. if 的语法,比较数字set n1 = 1set n2 = 2if ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif-------------------------------------------------------------------- 4. if 的语法,比较字串set n1 = abcdefset n2 = abcdeif ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif-------------------------------------------------------------------- 5. if 的语法,比较相似的字串set n1 = abcdefset n2 = abcdeif ($n1 =~ $n2) thenecho "$n1 Like $n2"elseecho "$n1 Not Like $n2"endif-------------------------------------------------------------------- 6. if 的语法,比较数字的大小set n1 = 1set n2 = 2if ($n1 > $n2) thenecho "$n1 > $n2"elseecho "$n1 < $n2"endif-------------------------------------------------------------------- 7. 每分钟执行一次的程式# mm 等于当天时间的【分钟】数set mm = `date | cut -d' ' -f4 | cut -d: -f2`if ( -r $0.out ) thenrm $0.outtouch $0.outelsetouch $0.outendifwhile ( $mm <= 16 )set mm = `date | cut -d' ' -f4 | cut -d: -f2`echo "$mm now is `date`"sleep 60#echo "$mm now is `date`" >> $0.outendecho "Over" >> $0.out-------------------------------------------------------------------- 8. 一个回圈的范例,并且利用expr 去作加的动作回圈的语法如下:foreach number (1 2 3)echo $numberendset counter = 0while ($counter <= 10)echo "sleeping for 5 seconds"sleep 5counter = `expr $counter + 1 `end-------------------------------------------------------------------- 9. 设定一个用当天月份与日期作为档案名称的程式如今天是10/02 , 则$prefix 会等于该程式+ 1002date.csh1002set prefix = `basename $0``date '+ %m%d'`echo $0echo $prefix--------------------------------------------------------------------10. 移除在foreach 回圈内指定的档案内的font 字串foreach file ([b,e,g,h,s]*.html)echo -n "Processing $file, remove the line number `grep -n font $file`"# $log 表示这个$file 有几个font 字串set log = `grep -c font $file`if ( $log == '0' ) thenecho ", pass $file"else# 先找出该档案的第一次出现font 的行数,如果3,则$cmd = 3dset cmd = `grep -n font $file | cut -d: -f1 | head -1`d# 利用sed 去执行删除的动作,并把结果输出到${file}1sed $cmd $file > ${file}1# 如果${file}1 没有资料,则passingif ( -z ${file}1 ) thenecho " , ${file}1 is zero"elsecp ${file}1 $filerm {$file}1echo " , $file remove ok"endifendifend# 后来看过sed 的更进一步用法,发现先前写的太笨了,试试这个# sed /font/d $file > ${file}1# 一次OK, 我真是大笨蛋--------------------------------------------------------------------11. 功能:将指定的档案中,出现第一次【回】的那一行,加上<title> xxxx </title>foreach file (sky*.html)set filetitle = ftitle# 主要部份为sed 部份s/^ *// 表示将该行第一个字元前的空白删除echo "<title>`grep 回$file | head -1 | sed -e 's/^ *//'`</title>" > $ftitle# 将刚刚那一行,再插回去head -1 $file > ${file}headsed 1d $file > ${file}1cat $ftitle >> ${file}headcat ${file}1 >> ${file}headcp ${file}head $filerm ${file}1rm $ftitlerm ${file}headecho "$file ok"end--------------------------------------------------------------------12. 一个实际建立一个ftp server 的程式里面包括许多应用,相当有参考价值( 未完成)set path = ( /usr/bin /usr/sbin )#set true = `grep -c ftp /etc/passwd`if ( $true == 0 ) thenecho "no ftp user in your system"echo -n "do you want to create the ftp user? "set answer = $<if ($answer == 'y' || $answer == 'Y') thenset maxid = `sort /etc/passwd | tail -1 | cut -d: -f3`echo $maxidset newid = `expr $maxid + 1`echo $newidecho "/usr/sbin/useradd -d /home1/ftp -u $newid -s /etc/false ftp"endifelseecho "Good. Your system already has the ftp user. "set ftphome = `grep ftp: /etc/passwd | cut -d: -f6`echo $ftphomeendifif ( -z $ftphome ) thenecho "ftphome must be non-null"exit 2endifif ( $ftphome == "/usr" || $ftphome == "/" ) then echo "ftphome can't be / or /usr"exit 2endif# create the ftp home directoryif ( ! -d $ftphome ) thenecho "mkdir $ftphome"endifecho "Setting up the ftphome for SunOS `uname -r`"if ( ! -d $ftphome ) thenecho "mkdir -p $ftphome/usr/bin"endifcp /bin/ls $ftphome/usr/binchmod 111 $ftphome/usr/bin/lschown root $ftphome/usr/binchmod 555 $ftphome/usr/binif ( -r $ftphome/bin ) thenmv -f $ftphome/bin $ftphome/Obinendifln -s usr/bin $ftphome-------------------------------------------------------------------- 13. 取得该使用者的UIDif ( $#argv == 0 ) thenecho "$0 usage: $1 username"exit 2endifset uid = `grep $1 /etc/passwd | cut -d: -f3`echo $uid-------------------------------------------------------------------- 14. 将指定档案内的html 取代成htmforeach file ( *.html )echo "Processing $file ..."sed s/html/htm/ $file > ${file}1cp ${file}1 $filerm ${file}1end--------------------------------------------------------------------15. 一个简简单单的范例,看看就好#!/bin/csh -fecho .................echo WELCOME to \* TAPE COPY \*echo .................echo Enter your name:# $< can read from stand inputset name = $<echo " "echo Hi $name \!set D = `date`echo Today\'s date is $D[1] $D[2] $D[3]if ($D[1] == Mon) thenecho -------------------------------------------------------------echo Today is $D[1]day $name, it\'s time to copy your directorys\!echo -------------------------------------------------------------elseecho -------------------------------------------------------------echo Today is $D[1]day $name, no tape copies today\!echo -------------------------------------------------------------endif--------------------------------------------------------------------16. 一个finger 的程式set FINGER = "/usr/ucb/finger"if ( -x $FINGER ) thenif ( $#argv == 0 ) thencat << TAG---------------------------------Hahahah ....---------------------------------TAGelse$FINGER "$*"endifelseecho "Cannot find finger on this system."endif--------------------------------------------------------------------17. 取得变数的方法set W = `who -r`echo $W[9]--------------------------------------------------------------------18. 更改档案名称,将*.html --> *.htm# rename *.html to *.htmecho -n "This will change *.html to *.htm. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endifforeach file ( *.html )echo "Processing $file to `basename $file .html`.htm "mv $file `basename $file .html`.htmend--------------------------------------------------------------------19. 更改档案名称,将*.htm --> *.htmlecho -n "This will change *.htm to *.html. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endif# rename *.htm to *.htmlforeach file ( *.htm )echo "Processing $file to `basename $file .htm`.html "mv $file `basename $file .htm`.htmlend-------------------------------------------------------------------- 20. 将大写的档名改成小写的档名tr string1 string2 会将standard input 的字串,所对应到的string1, 都以string2 取代foreach file ( * )mv $file `echo $file | tr '[A-Z]' '[a-z]'`end-------------------------------------------------------------------- 21. 将小写的档名改成大写的档名foreach file (*)mv $file `echo $file | tr '[a-z]' '[A-Z]'`end</P< p>。
GENESIS培训教程一、引言GENESIS(GeneralNeuralSimulationSystem)是一款功能强大的神经网络模拟软件,由美国加州大学圣地亚哥分校开发。
作为一款优秀的神经科学工具,GENESIS已被广泛应用于神经网络建模、仿真及分析等领域。
本文旨在为初学者提供一份全面、系统的GENESIS培训教程,帮助读者快速掌握GENESIS的基本操作和高级功能。
二、GENESIS安装与配置1.安装GENESIS2.配置环境变量为了方便在命令行中运行GENESIS,需要将其安装路径添加到系统环境变量中。
具体操作如下:(1)右键“我的电脑”或“此电脑”,选择“属性”;(2)“高级系统设置”,在“系统属性”窗口中“环境变量”;(3)在“系统变量”区域找到变量名为“Path”的变量,“编辑”;(4)在变量值的最前面添加GENESIS安装路径,用分号隔开,例如:“C:\GENESIS\genesis-2.4\bin;”;(5)“确定”保存设置,并重启计算机使设置生效。
三、GENESIS基本操作1.创建神经网络模型(1)打开GENESIS命令行界面;(2)输入命令“genesis”,启动GENESIS;(3)在GENESIS命令行界面中,输入命令“createneutral/cell”创建一个名为“cell”的神经网络模型;(4)在“cell”模型中,可以创建神经元、突触等组件,并设置其属性。
2.编写神经网络仿真脚本(1)在GENESIS命令行界面中,输入命令“edit”打开文本编辑器;(2)编写神经网络仿真脚本,包括创建神经元、突触、设置参数、运行仿真等;(3)保存脚本,退出文本编辑器。
3.运行神经网络仿真(1)在GENESIS命令行界面中,输入命令“Genesis-batchscript.g”运行名为“script.g”的仿真脚本;(2)仿真过程中,可以在命令行界面查看输出信息;(3)仿真结束后,可以在GENESIS图形界面中查看仿真结果。
genesis脚本实施方案Genesis脚本实施方案为了更好地实施Genesis脚本,我们需要制定一个详细的实施方案,以确保项目顺利进行并取得成功。
本文档将详细介绍Genesis脚本的实施方案,包括目标、步骤和关键注意事项。
1. 目标我们实施Genesis脚本的主要目标是提高系统的效率和稳定性,减少手动操作,降低人为错误的发生率。
通过Genesis脚本的实施,我们希望能够实现自动化部署、监控和故障排除,提高系统的可靠性和安全性。
2. 实施步骤(1)需求分析:首先,我们需要对系统的需求进行分析,确定Genesis脚本的具体功能和实施范围。
在这一阶段,我们需要与相关部门和人员充分沟通,了解他们的需求和期望,以便为实施方案的制定提供参考。
(2)技术评估:在确定了需求后,我们需要对系统的技术架构和环境进行评估,确保Genesis脚本可以与现有系统无缝集成。
同时,我们还需要评估团队的技术能力和资源情况,确保实施过程中能够得到充分的支持和配合。
(3)制定计划:在完成需求分析和技术评估后,我们需要制定详细的实施计划,包括时间安排、人员配置、风险评估和质量控制等方面。
在制定计划时,我们需要充分考虑各种可能的情况,确保实施过程中能够及时调整和应对。
(4)实施和测试:实施阶段是Genesis脚本实施方案的关键阶段,我们需要按照计划逐步推进,确保每个环节都得到充分的测试和验证。
在实施过程中,我们需要严格遵循规范和流程,确保系统的稳定性和安全性。
(5)培训和支持:在完成实施后,我们需要对相关人员进行培训,确保他们能够熟练操作和维护Genesis脚本。
同时,我们还需要提供充分的支持和帮助,确保系统能够稳定运行并发挥最大的效益。
3. 关键注意事项在实施Genesis脚本的过程中,我们需要特别注意以下几个方面:(1)风险管理:实施过程中可能会出现各种风险,我们需要及时评估和应对,确保项目不受影响。
(2)沟通协调:实施过程需要各个部门和人员的密切配合,我们需要加强沟通和协调,确保项目顺利进行。
PCB技术群:群号9076912锣带制作一般流程创建外围Æ整理外围线--Æ层别特性转换--Æ确认及标示尺寸Æ刀具及切割路线设定Æ锣带文件输出操作详解1,创建外围如已有外围则不用再建尽量选择外框接触物件不多的层Æ选中外框ÆEditÆCopyÆ Other LayerÆ取名为Rout Æ其他参数都不用设置点OKÆ把Rout层中多余的不属于外围的物件删除掉2, 整理外围线将接合不佳处重新接合,并以ARC取代线段,组成圆弧。
A> EditÆReshapeÆDesign To Rout最大分析缺口最大接合缺口平滑偏移误差B>RoutÆConnection或EditÆConnections 快捷键 Alt__O选取圆弧模式选取导角模式R角(半径)角度3,层别特性转换进入Job Matrix ,将rout层定义属性(Board;Rout;Positive)4,确认及标示尺寸RoutÆDimensions部分选择显示指定起点指定终点All 任意点Ps 起点Pe 终点可平移终点边线于指定位置调整标示位置注意:不可重复标示同一终点线段。
5,刀具及切割路线设定 RoutÆChains切 路 ,锣带的层名添加(修改,删除,合并,优化,加导引孔)等操作刀具大小左右补偿(一般都用右补偿)Router机台速度产生的Chain记录列表Chain [t ∫ein ] 电路;链路, 理,.6,锣带文件输出ActionsÆAuto Rout Manager切换到Engineering Toolkit窗口,才能调出自动锣带管理器,跟Auto Drill Manager操作类似。
Genesis2000脚本编写常用命令解析1. switch 的用法,注意每一个case 必须要以breaksw 结尾否则会继续执行下一个case 的命令(1) 另外,$< 的意思是取得使用者的stand input(2) echo 若加上-n 的选项,则游标会停留在该行最后echo -n "Input one color: "set STOPLIGHT = $<switch ($STOPLIGHT)case red:echo "red"breakswcase orange:echo "orange"breakswcase green:echo "green"breakswdefault:echo "you input $STOPLIGHT"endsw2. 利用set 来取得变数,set ABC = "I am ABC"也可以利用`command` 来取得命令且外,case 也可以用万用字元* 来代替set VER = `uname -r`switch ($VER)case 5.5:echo "run the setup of $VER"breakswcase 5.3:echo "run the setup of $VER"breakswcase 5.*:echo "like 5.x"breakswcase 4.*:echo "like 4.x"breakswdefault:echo "no idea"endsw3. if 的语法,比较数字set n1 = 1set n2 = 2if ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif4. if 的语法,比较字串set n1 = abcdefset n2 = abcdeif ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif5. if 的语法,比较相似的字串set n1 = abcdefset n2 = abcdeif ($n1 =~ $n2) thenecho "$n1 Like $n2"elseecho "$n1 Not Like $n2"endif6. if 的语法,比较数字的大小set n1 = 1set n2 = 2if ($n1 > $n2) thenecho "$n1 > $n2"elseecho "$n1 < $n2"endif7. 每分钟执行一次的程式# mm 等于当天时间的【分钟】数set mm = `date | cut -d' ' -f4 | cut -d: -f2`if ( -r $0.out ) thenrm $0.outtouch $0.outelsetouch $0.outendifwhile ( $mm <= 16 )set mm = `date | cut -d' ' -f4 | cut -d: -f2` echo "$mm now is `date`"sleep 60#echo "$mm now is `date`" >> $0.outendecho "Over" >> $0.out8. 一个回圈的范例,并且利用expr 去作加的动作回圈的语法如下:foreach number (1 2 3)echo $numberendset counter = 0while ($counter <= 10)echo "sleeping for 5 seconds"sleep 5counter = `expr $counter + 1 `end9. 设定一个用当天月份与日期作为档案名称的程式如今天是10/02 , 则$prefix 会等于该程式+ 1002date.csh1002set prefix = `basename $0``date '+ %m%d'`echo $0echo $prefix10. 移除在foreach 回圈内指定的档案内的font 字串foreach file ([b,e,g,h,s]*.html)echo -n "Processing $file, remove the line number `grep -n font $file`"# $log 表示这个$file 有几个font 字串set log = `grep -c font $file`if ( $log == '0' ) thenecho ", pass $file"else# 先找出该档案的第一次出现font 的行数,如果3,则$cmd = 3d set cmd = `grep -n font $file | cut -d: -f1 | head -1`d# 利用sed 去执行删除的动作,并把结果输出到${file}1sed $cmd $file > ${file}1# 如果${file}1 没有资料,则passingif ( -z ${file}1 ) thenecho " , ${file}1 is zero"elsecp ${file}1 $filerm {$file}1echo " , $file remove ok"endifendifend# 后来看过sed 的更进一步用法,发现先前写的太笨了,试试这个# sed /font/d $file > ${file}1# 一次OK, 我真是大笨蛋11. 功能:将指定的档案中,出现第一次【回】的那一行,加上<title> xxxx </title>foreach file (sky*.html)set filetitle = ftitle# 主要部份为sed 部份s/^ *// 表示将该行第一个字元前的空白删除echo "<title>`grep 回$file | head -1 | sed -e 's/^ *//'`</title>" > $ftitle# 将刚刚那一行,再插回去head -1 $file > ${file}headsed 1d $file > ${file}1cat $ftitle >> ${file}headcat ${file}1 >> ${file}headcp ${file}head $filerm ${file}1rm $ftitlerm ${file}headecho "$file ok"end12. 一个实际建立一个ftp server 的程式里面包括许多应用,相当有参考价值( 未完成)set path = ( /usr/bin /usr/sbin )#set true = `grep -c ftp /etc/passwd`if ( $true == 0 ) thenecho "no ftp user in your system"echo -n "do you want to create the ftp user? "set answer = $<if ($answer == 'y' || $answer == 'Y') thenset maxid = `sort /etc/passwd | tail -1 | cut -d: -f3`echo $maxidset newid = `expr $maxid + 1`echo $newidecho "/usr/sbin/useradd -d /home1/ftp -u $newid -s /etc/false ftp"endifelseecho "Good. Your system already has the ftp user. "set ftphome = `grep ftp: /etc/passwd | cut -d: -f6`echo $ftphomeendifif ( -z $ftphome ) thenecho "ftphome must be non-null"exit 2endifif ( $ftphome == "/usr" || $ftphome == "/" ) then echo "ftphome can't be / or /usr"exit 2endif# create the ftp home directoryif ( ! -d $ftphome ) thenecho "mkdir $ftphome"endifecho "Setting up the ftphome for SunOS `uname -r`"if ( ! -d $ftphome ) thenecho "mkdir -p $ftphome/usr/bin"endifcp /bin/ls $ftphome/usr/binchmod 111 $ftphome/usr/bin/lschown root $ftphome/usr/binchmod 555 $ftphome/usr/binif ( -r $ftphome/bin ) thenmv -f $ftphome/bin $ftphome/Obinendifln -s usr/bin $ftphome13. 取得该使用者的UIDif ( $#argv == 0 ) thenecho "$0 usage: $1 username"exit 2endifset uid = `grep $1 /etc/passwd | cut -d: -f3`echo $uid14. 将指定档案内的html 取代成htmforeach file ( *.html )echo "Processing $file ..."sed s/html/htm/ $file > ${file}1cp ${file}1 $filerm ${file}1end15. 一个简简单单的范例,看看就好#!/bin/csh -fecho .................echo WELCOME to \* TAPE COPY \*echo .................echo Enter your name:# $< can read from stand inputset name = $<echo " "echo Hi $name \!set D = `date`echo Today\'s date is $D[1] $D[2] $D[3]if ($D[1] == Mon) thenecho -------------------------------------------------------------echo Today is $D[1]day $name, it\'s time to copy your directorys\!echo -------------------------------------------------------------elseecho -------------------------------------------------------------echo Today is $D[1]day $name, no tape copies today\!echo -------------------------------------------------------------endif16. 一个finger 的程式set FINGER = "/usr/ucb/finger"if ( -x $FINGER ) thenif ( $#argv == 0 ) thencat << TAG---------------------------------Hahahah ....---------------------------------TAGelse$FINGER "$*"endifelseecho "Cannot find finger on this system."endif17. 取得变数的方法set W = `who -r`echo $W[9]18. 更改档案名称,将*.html --> *.htm# rename *.html to *.htmecho -n "This will change *.html to *.htm. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endifforeach file ( *.html )echo "Processing $file to `basename $file .html`.htm "mv $file `basename $file .html`.htmend--------------------------------------------------------------------19. 更改档案名称,将*.htm --> *.htmlecho -n "This will change *.htm to *.html. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endif# rename *.htm to *.htmlforeach file ( *.htm )echo "Processing $file to `basename $file .htm`.html "mv $file `basename $file .htm`.htmlend20. 将大写的档名改成小写的档名tr string1 string2 会将standard input 的字串,所对应到的string1, 都以string2 取代foreach file ( * )mv $file `echo $file | tr '[A-Z]' '[a-z]'`end21. 将小写的档名改成大写的档名foreach file (*)mv $file `echo $file | tr '[a-z]' '[A-Z]'`end。
Genesis10.0安装教材
Genesis10_0安装教材
1. 双击弹出如下界面
2.
3. 注意安装序号,看清后面的路径是否正确,①原文件路径指的是你的安装源文件
4. 点②③④弹出什么只管双击确定就行了
5. 点读取安装包信息弹出下面对话框,直接点右边的:单机版
6 .弹出下面安装界面,请先选你要装到哪个盘里哪个目录里如下:
7.点第7 步复制程序文件,在所有弹出的对话框中点YES 或确定;最后点Genesis
8.点第8 设置文件属性
9.点第9 项,红色正常不用理会它,点确定就行了!
10 .点第10 项弹出对话框直接点YES —》YES —》
选16/32bit 再点,最后点11.点第11 项设置用户名和密码,在弹出的对话框中填入用户名和密码。
如下图
填好后点:确定
12.点第12 项:设置数据库位置,在弹出的对话框中点YES;再点弹出的对话框的中间:点我既可。
13.第13 步可以不点。
14.退出安装程序。
15.把文件夹中的文件目录整体拷贝到D:\genesis\sys 里面。
16.把文件拷贝到桌面。
17.重起动电脑。
双击桌面的便可起动Genesis 了。
此版本为稳定版虽然汉化了安装界面,但是内核是原装版没有任何改动;请放心使用。
一perl是什么?二perl在哪里?三运行四注释一、Perl是什么?Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall 设计的,并由他不断更新和保护,用于在UNIX环境下编程。
.Perl具有高级语言(如C)的壮大能力和灵活性。
事实上,你将看到,它的许多特性是从C语言中借用来的。
.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告知Perl来运行罢了。
这意味着Perl关于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。
.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具有的很多功能。
Perl还支持sed到Perl及awd到Perl的翻译器。
简而言之,Perl象C一样壮大,象awk、sed等脚本描述语言一样方便。
二、Perl在哪里?Perl通常位于/usr/local/bin/perl或/usr/bin/perl中。
你能够在Internet用匿名FTP免费取得它,如{{ftp:///pub/gnu/perl-5.004.tar.gz}}。
安装进程为:(1)解压:$gunzip perl-5.004.tar.gz$tar xvf - <perl-5.004.tar.gz(2)编译:$make makefile(3)放置:将编译生成的可执行文件拷贝到可执行文件通常所在目录,如:$copy <compiled excutable file> /usr/local/bin/perl注:这需要系统治理员权限。
三、运行用文本编辑器编辑好你的Perl程序,加上可执行属性:$chmod +x <program>就能够够执行了:$./<program>。
若是系统提示:"/usr/local/bin/perl not found",那么说明你没有安装成功,请从头安装。
D e s i g n e r B y:A n j i eDate:2015-09-09资料整理1.检查整理资料(解压缩.zip,打印客户PDF等资料).2.INPUT资料(注意钻孔D-CODE属性设置)3.更改层命名,定义层属性及排序.4.层对齐及归原点(最左下角).5.存ORG.整理原始网络6.钻孔核对分孔图(MAP)7.挑选成型线至outline层8.工作层outline层移到0层.9.整理钻孔(例如:将大于6.4mm钻孔移动到outline层, 其它层NPTH,SLOT移动到DRL层)10.整理成型线(断线、缺口、R8)11.整理outline(将outline层需要钻孔的移动到drl层)12.创建Profile.13.板外物移动到0层.14.核对0层成型线及板外物是否移除正确.15.内层网络检查(如负性假性隔离)16.防焊转PAD17.线路转PAD18.分析钻孔(检查线路PAD是否有漏孔、重孔修正,内层short)19.定义SMD属性20.存NET21.打印原稿图纸.编辑钻孔22.补偿钻孔(1)检查原始孔径是否正确(不能有“?”号)(2)合刀排序(3)输入板厚与补偿值(PTH+4 /PTH+6)(4)定义钻孔属性(VIA,PTH,NPTH)主要定义VIA属性NPTH在整理原始网络前定义.(5)输入公差(注意单位).(6)检查最大与最小孔是否符合规范(7)短SLOT孔分刀,8字孔分刀。
(尾数+1 或-1)23.校对钻孔中心(参照TOP防焊及TOP线路)24.分析钻孔25.短SLOT孔加预钻孔26.挑选NPTH属性的孔移动到新建NPTH层.内层负片编辑1.检查有无负性物件(负性物件需要合并)2.层属性是否为NEG3.对齐钻孔(内层负片为影响层,参考钻孔层对齐)4.隔离线宽检查修正。
5.检查隔离PAD检查修正。
a.与原始孔径等大,要与客户确认。
b.比原始孔径小很多可删除,按导通制作。
6.成型线及NPTH隔离宽度检查修正(无成型线及NPTH隔离,需要自行添加)7.Thermal检查修正:a.内外径单边6mil以上。
第十章 awk 工具编程 我们在genesis 编程中,awk 工具会经常用到,awk 工具很强大,它不仅可以从一个很大的文本文件中抽取数据包,还可以进行算术运算、比较运算等等很多功能,应该说awk 是一种比较完整的编程语言,本章我们就一一介绍这个较为强大的工具。
刘才林数字签名人 刘才林DN :cn=刘才林,c=CN-中国,o=上海桌凯,ou=工程,email=hillohowareyougo@ 原因:我是该文档的作者日期:2008.07.03 10:07:27 +08'00'10.1:awk简介:awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。
数据可以来自标准输入、一个或多个文件,或其它命令的输出。
它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。
它可以在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。
如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。
awk分别代表其作者姓氏的第一个字母。
因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。
Awk后来在Linux系统上发展为gawk,在unix系统上发展为nawk,而在genesis2000编程的windows系统中,我们要应用awk95,它们之间也有一些区别,如果你编写的genesis2000程序要应用于多个系统,请注意您的awk程序是否能在各个系统中运行,并且定义不同系统为不同的awk,因为最早的awk很多功能都不能实现。
下面的讲解以gawk为主,但我们简称为awk,请大家不要混淆概念。
10.2:awk命令格式和选项:10.2.1:awk的语法有两种形式:awk [options] 'script' var=value file(s)awk [options] -f scriptfile var=value file(s)10.2.2:awk的常用选项:●–F fs:使用fs作为输入记录的字符分隔符,如果省略该选项,awk使用环境变量IFS的值。
●–f filename:从文件filename中读取awk_scripts。
●–v 为awk_script设置变量。
10.3:awk的调用方式:awk的调用方式可分为三种:(1):直接写成命令行(在awk程序很短的情况下)(2):将awk_scripts放入脚本并以#!/bin/awk 作为开头,给予它可执行权限,然后执行程序。
(3):将awk程序插入一个单独脚本文件,然后用:awk –f进行调用。
10.4:模式和动作:任何awk语句都由模式和动作组成。
在一个awk脚本中可能有许多语句。
模式部分决定动作语句何时触发及触发事件,处理即对数据进行的操作,如果省略模式部分,动作将时刻保持执行状态;如果动作被省略,则缺省的动作被执行,既显示出所有符合模式的输入行而不做任何的改动。
10.4.1:模式:模式可以是任何条件语句或复合语句或正则表达式。
模式包括两个特殊字段BEGIN和END。
使用BEGIN语句设置计数和打印头。
BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行。
END语句用来在awk完成文本浏览动作后打印输出文本总数和结尾状态标志。
如果不特别指明模式,awk总是匹配或打印行数。
10.4.2:动作:动作都在{}内,主要分为四个部分:●变量或数组赋值:●输出命令:●内置函数:●控制流命令:10.4.3:范例:●awk '/genesis/' /etc/passwd上面的程序在/etc/passwd中找寻符合genesis的记录,并显示出来,该例子中没有动作,所以缺省的动作被执行。
●awk '/genesis/{print $1}' 304.txt以上程序是在文件304.txt中查找包含genesis字符串的记录,并且打印这些记录的第一行。
10.5:运算符号:10.5.1:比较运算:下面我们先列出awk的比较运算符号:●== 相等●!= 不等于●< 小于●> 大于●<= 小于等于●>= 大于等于awk可以进行带有小数点的比较,下面我们举例说明:echo 2.3 3.2|awk ‘{if($1<$2)print 1;else print 2}’则结果会显示1。
10.5.2: 逻辑运算式:下面我们列出逻辑运算符号:●|| 逻辑或●&& 逻辑与●! 逻辑否10.5.3:正则表达式符号:●~ 匹配正则表达式。
●~! 不匹配正则表达式。
10.5.4:数值运算符号:●+ 加法运算●- 减法运算●* 乘法运算●/ 除法运算●% 求余数●= 赋值●^ 求幂●** 求幂●+= 将变量加一个数再将此值赋给变量●-= 将变量减一个数再将此值赋给变量●++ 将变量值加1●-- 将变量值减1●*= 将变量乘以一个数再将此值赋给变量●/= 将变量除以一个数再将此值赋给变量●%= 将变量求余后再将余数赋给变量●^= 将变量求幂后再将结果赋予给变量下面我们举例进行说明:(1): 将数值10进行3次立方:echo 10|awk ‘{print ($1^3)}’结果为1000(2):将数值5乘以3加上8:echo 5|awk ‘{print ($1*3+8)}’结果等于2310.6:记录、域:在awk中如果我们要对文本进行操作,就要特别注意记录、域的概念,下面我们分别进行讲述:10.6.1:记录:●awk把每一个以换行符结束的行称为一个记录。
●记录分隔符:默认的输入和输出的分隔符号都是回车,保存在内建变量ORS和RS中。
●$0变量:它指的是整条记录,如awk ‘{print $0}’ test将输出test文件中的所有记录。
●NR:行号:一个计数器,每处理完一条记录,NR就会加1,我们也可以固定打印某行的记录:如cat xx|awk -F '{if(NR==1)print $0}',则打印xx文件的第一行的记录。
10.6.2:域:● 记录中每个单词称为“域”,默认情况下以空格或tab分隔,awk可跟踪域的个数,并在内建变量NF中保存该值,如awk ‘{print $1,$5}’ test 则将打印test第一个和第三个空格分开的列。
● 域分隔符:内建变量FS保存输入域分隔符的值,默认是空格或TAB,我们可以通过-F命令行选项参数修改FS的值,如awk –F:‘{print $1,$5}’ test则将打印以冒号为分隔符的第一和第五列的内容。
● 可以同时使用多个域分隔符,这时应该把分隔符写成到方括号中,如awk –F‘[:\t]’’{print $1,$3}’ test’表示以空格、冒号和TAB作为分隔符。
10.7:正则表达式:在grep一章中,有许多例子用到正则表达式,这里将不使用同样的例子,但可以使用条件操作讲述awk中正则表达式的用法。
这里正则表达式用斜线括起来。
例如,在文本文件中查询字符串genesis,使用/genesis/可以查出单词genesis的出现情况。
10.7.1:元字符:awk的元字符包括下面一些符号:\ ^ $ . [] | () * + ?元字符的具体解释可以参照前面的章节,但其中有两个符号在前面没有提到,因为它们只适合与awk,它们为“+”和“?”●+ 使用匹配一个或者多个字符。
●?匹配模式出现的频率。
10.7.2:范例:●查找文件test中第一个字段为genesis的记录,并打印它们的整个行:cat test|awk –F’’’{if($1==”genesis”)print $0}’genesis 2 3genesis 3 5●查找文件scripts中第一个字段不为set的记录,并打印它们整个行:cat scripts|awk –F’’’{if($1!=”set”)print $0}’echo “$1”echo “this is value”●打印文件中所有以X或者Y开头的记录:$awk ‘/^(X|Y)/’ test●如果第一个域是一个数值,并等于100则打印这个记录:$awk ‘$1==100’test100 35 25100 X Y●打印第二个域的第5个字母为x的所有记录。
$awk ‘$2 ~/^...x/ testgenesis1 0005x002genesis2 0303x0325●打印第一个域为三个字母开头,就打印这个记录:$awk ‘$1~/^[a-z][a-z][a-z]/{print $1}’testabc00cds1210.8:变量:10.8.1:普通变量:在awk中,变量不需要进行定义而可以直接使用,变量类型可以是数字或字符串:赋值的格式为:variable=expression:请看下面的例子:$1 == "genesis" {value = value + 1 }如果第一个字段是genesis,则value的值加1。
在此之前,我们应当给value赋予过初值,一般是在GEGIN部分。
下面是比较完整的例子:BEGIN { value = 0 }$5 == "genesis" { value = value + 1 }END { printf "%d occurrences of genesis were found",value }变量可以和字段和数值一起使用,所以,下面的表达式均为合法:value = value + $6value = value * 3value+=3value = $5 - 8value*=3变量也可以是格式的一部分,例如:$1 > max_value {print "this max value exceeded by ",$1 - max_value}$3 - var1 < min_value {print "this Illegal value of ",$3 }10.8.2:环境变量:awk的环境变量比较多,下面我们先描述它们各自的功能:●$n 当前记录的第n个字段●$0 完整的当前记录●ARGC 命令行参数的数目●ARGIND 命令行中当前文件的位置●ARGV 包含命令行参数的数组●CONVFMT 数字转换格式(默认为%g)●ENVIRON 环境变量关联数组●ERRNO 最后一个系统错误●FIELDWIDTHS 字段宽度列表●FILENAME 当前文件名●FNR 同NR,但相对于当前文件●FS 字段分割符号,默认为空格●IGNORECASE 如果为真,则进行忽略大小写匹配●NF 当前记录中的字段数●NR 当前记录数●OFMT 数字的输出格式(默认值是%g)●OFS 输出字段分隔符(默认值是空格)●ORS 输出记录分隔符(默认是一个换行符)●RLENGTH 由match函数所匹配的字符串长度●RS 记录分隔符号(默认为一个换行符号)●RSTART 由match函数所匹配的字符串的第一个位置●SUBSEP 数组下标分隔符(默认值是\034)10.9:BEGIN和ENDBEGIN和END两个模块在awk中非常有用,下面我们对它们进行详细介绍:10.9.1:BEGIN模块:BEGIN模块后面紧紧跟着动作块,它可以在没有任何输入的情况下进行测试,它通常用来初始化数值,设置参数等等,如:awk 'BEGIN{FS=","; OFS="\t"; ORS="\n\n"}{print $1,$2,$3} test。