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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 883|回复: 5

[求助] perl中如何实现批量修改操作?

[复制链接]
发表于 2023-6-26 14:23:39 | 显示全部楼层 |阅读模式

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

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

x
批量操作cdl文件中每一个w=X后面添加fw=X
如:
XXX2 vss D net11 vss vdd SUB nch_svt_iso_nbl_5p0v m=1 l=500n        
+ w=410n option_vop=7.7 option_dti=0        fw=410n
XXX6 vss net5 net9 vss vdd SUB nch_svt_iso_nbl_5p0v m=1 l=500n        
+ w=335n option_vop=7.7 option_dti=0        fw=335n
XXX4 net5 net4 net12 vss vdd SUB nch_svt_iso_nbl_5p0v m=1 l=500n        
+ w=335n option_vop=7.7 option_dti=0        fw=335n


        希望有大腿帮忙下,弟弟感激不尽。


发表于 2023-6-26 16:24:55 | 显示全部楼层
直接用正则匹配能实现吗
 楼主| 发表于 2023-6-27 13:35:50 | 显示全部楼层


ljh065216 发表于 2023-6-26 16:24
直接用正则匹配能实现吗


因为用工艺厂提供的cdl导出schematic的w数值识别不到,会默认提供一个错误的10u,而改成fw便可以正确识别并生成正确的原理图,所以想要用perl批量添加上。
 楼主| 发表于 2023-6-28 14:51:33 | 显示全部楼层
难道没有大神会吗?有人救救孩子吗
发表于 2023-6-28 16:05:47 | 显示全部楼层
#!/usr/bin/perl

use strict;
use warnings;

# 读取输入文件和输出文件的名称
my $input_file = 'input.cdl';
my $output_file = 'output.cdl';

# 打开输入文件和输出文件
open(my $input_fh, '<', $input_file) or die "无法打开输入文件: $!";
open(my $output_fh, '>', $output_file) or die "无法打开输出文件: $!";

# 逐行读取输入文件
while (my $line = <$input_fh>) {
    chomp $line;

    # 在包含 "w=X" 的行后添加 "fw=X"
    if ($line =~ /w=(\S+)/) {
        my $w_value = $1;
        $line .= " fw=$w_value";
    }

    # 将修改后的行写入输出文件
    print $output_fh "$line\n";
}

# 关闭文件句柄
close($input_fh);
close($output_fh);

print "批量操作完成,结果已写入 $output_file。\n";
 楼主| 发表于 2023-6-29 13:25:06 | 显示全部楼层


damonzhang 发表于 2023-6-28 16:05
#!/usr/bin/perl

use strict;


万分感谢大神,很完美解决了我的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-18 04:17 , Processed in 0.018346 second(s), 7 queries , Gzip On, Redis On.

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