在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5585|回复: 1

[求助] perl具体替换实现

[复制链接]
发表于 2012-5-23 13:18:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
txt文件中的
XU21 n26  n3   n10    NOR2X1 替换为:
XU21 n26 n26n n3 n3n  n10 n10n  nClk NOR2X1_sabl
txt文件spice网表,需求:
1 希望能够将 输出和输入后面加上一个反向的信号,即n10 变为n10 n10n,
2 在最后一个输出后面加上nCLK信号
3 在子电路名字后面加上"_sabl"即 NOR2X1 变为NOR2x1_sabl
请教应该怎么实现呢?谢谢
发表于 2012-5-23 22:12:24 | 显示全部楼层
本帖最后由 walker 于 2012-5-23 22:13 编辑

不太清楚你具体的应用情况,感觉结合正则和split 通用性会更强些,适用不同端口数目的情况。比如
$_="XU21 n26  n3   n10    NOR2X1";
if(/^\s*XU\d+\s+/){
    chomp;
    s/^\s*//;
    s/\s*$//;
    my @line = split;
    my @new = map {($line[$_],"$line[$_]n")} (1 .. $#line-1);
    $out=join " ",($line[0],@new,"nClk","$line[-1]_sabl");
}
say $out;  #打印


######################
如果单纯用正则表达式,通用性需要蛮多考虑。以下仅给出一个简单示意:
假设你的网表文件打开的句柄为$fh;
while(<$fh>){
    ($out= $_)=~ s/^\s*(XU\d+)\s+
                  (n\d+)\s+
                  (n\d+)\s+
                  (n\d+)\s+
                  (\w+)\s*$
                  /$1 $2 $2 $3 $3n $4 $4n nClk $5_sabl/x;
}

仅供参考哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 20:44 , Processed in 0.019537 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表