TCL
TCL脚本学习
小张爱自由
这个作者很懒,什么都没留下…
展开
-
tcl 中的proc 函数
proc get_area {args} { parse_proc_arguments -args $args opt set pattern "" if {[info exists opt(-pattern) ]} { set pattern $opt(-pattern) } set area 0 foreach_in_collection c [get_flat_cell *${pattern}*] { set area [expr [get_attribut.原创 2021-03-04 17:11:11 · 6183 阅读 · 1 评论 -
sed
sed有2个神奇的行定址操作符:~和+以前对倍数行一直都是用shell循环,这是个愚蠢的方法,因为每次调用sed都要读写一次文件,所以很慢。其实sed的行定址符~很强大,比如,打印所有的8的倍数行用 sed -n '0~8p'即可打印8,16,24,32...(-n 是为了禁止显示全文,否则会输出全文+8的倍数行)。如果要打印8的倍数行的下一行呢?即1,9,17,25,33...行,很简单用1取代0,即sed -n '1~8p' .倍数行块,是指(8,9,10); (16,17,18); (2.原创 2020-11-23 09:15:53 · 262 阅读 · 0 评论 -
cshell 判断字符串存在
主要有以下几种方法:echo “$str”|awk '{print length($0)}'expr length “$str”echo “$str”|wc -c但是第三种得出的值会多1,可能是把结束符也计算在内了判断字符串为空的方法有三种:if ( "$str" == "" )if { [ x"$str" = x ] } 注意空格if { [ -z "$str" ] }(-n 为非空)...原创 2020-09-17 14:26:13 · 2293 阅读 · 0 评论 -
tcl regexp regsub
regsub:替换字符串regexp:匹配set cellName INV1_90S9T16Lif {[regexp {16UL$} $cellName match]==0} {puts "1111111111111111111111" if {[regsub {16.*$} $cellName "16UL" newCell]} { ...原创 2020-03-17 13:58:20 · 2682 阅读 · 1 评论 -
tcl 脚本中字符串匹配
1.在命令中,每个参数用空格隔开,要注意双引号、中括号和大括号里的内容整体作为一个参数。在Tcl执行过程中,先解析命令,然后把参数作为这个命令的输入,执行命令时再由命令进一步解析参数。注意命令和参数要有空格隔开2.string命令基本语法如下(这里的string1,string2可以是字符串也可以是变量,option是下列选项之一)...原创 2020-01-15 10:36:15 · 2443 阅读 · 0 评论 -
TCL proc 子函数调用
TCL里的过程,等效于C语言里的函数(function)一个标准的proc一般具有如下的特点proc proc_name {argument} { ...... return return_value}1234在使用的时候,直接输入过程名即可执行。先来看一个下面的例子,这是一个标准的过程,get_area就是这个过程名,直接执行它就可以了,这个过程名的...转载 2019-12-02 17:58:18 · 6905 阅读 · 0 评论 -
TCL 程序控制
forfor start test next bodyfor是一个与C语言中for结构类似的循环命令。start、next和body必须是Tcl命令字符串,test是表达式字符串。for命令首先调用Tcl解释器来执行start进行一些初始化操作。然后将test做为表达式进行评估。如果评估结果非零,则调用Tcl解释器执行body,然后调用解释器执行next,然后重复以上步骤,直到test表达式评...转载 2019-12-02 17:53:45 · 276 阅读 · 0 评论