作者:蟹子的宿命 | 来源:互联网 | 2022-11-21 09:27
我最近在KiCad中创建了一些PCB封装,它们存储在s-expression文件中,其数据如下所示:
(fp_text user %R (at 0 5.08) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -27.04996 -3.986) (end -27.24996 -3.786) (layer F.Fab) (width 0.1))
(pad "" np_thru_hole circle (at 35.56 0) (size 3.175 3.175) (drill 3.175) (layers *.Cu *.Mask)
(clearance 1.5875))
(pad 96 smd rect (at 1.25 3.08473) (size 0.29972 1.45034) (layers F.Cu F.Paste F.Mask)
(clearance 0.09906))
我希望能够编写shell one-liners来有效地编辑多个参数.我通常会使用Awk这样的东西,但是s表达式的递归性质使它不适合这项任务.我想知道是否存在一种带有解释器的编程语言,用于处理管道数据并且可以本地处理s表达式.也许Lisp的数据驱动方言会这样做,但我不知道在哪里看.
总之,我希望能够以类似于Awk允许我逐行处理数据列的方式快速编辑s表达式文件; 仅在s表达式的情况下,处理将逐级执行.
例如:发现所有的的pad
类型的表达式smd
用(size 0.29972 1.45034)
,并重新编号基于其位置每一个.