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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8643|回复: 32

[求助] shell脚本求助

[复制链接]
发表于 2020-9-9 21:45:43 | 显示全部楼层 |阅读模式
1000资产
本帖最后由 korli319 于 2020-9-23 18:29 编辑

大神们好,小弟有个shell 脚本求助,假设我有个文件,内容是 :

I638<2>    INV
I638<1>    INV
I638<0>    INV
I633<0>    NAND2
I633<1>    NAND2
I633<2>    NAND2


如何用shell脚本将上面文件内容实现成:
I638[2:0]   INV
I633[0:2]   NAND2


说明一下,上面说的I638和I633只是举了一个例子,实际上文件每一次都不太一样,但都是 I 开头,后面跟 一个数字,
还有后面的<2>
                <1>
                <0>  也是有时顺序不太一样,有时会出现<0>
                                                                            <1>
                                                                            <2>,如果是这种的话,就必须要写成[0:2]


先谢谢大神们了!

最佳答案

查看完整内容

请查看附件...do.rar包含 a.log do.sh
发表于 2020-9-9 21:45:44 | 显示全部楼层
请查看附件...do.rar包含

a.log

do.sh

do.rar

479 Bytes, 下载次数: 20 , 下载积分: 资产 -2 信元, 下载支出 2 信元

a.logdo.sh

发表于 2020-9-10 07:43:30 | 显示全部楼层
这个用shell写比较费劲,但是用python或者perl写就非常简单
发表于 2020-9-10 11:28:56 | 显示全部楼层
awk脚本也可以轻松做到
发表于 2020-9-10 11:47:09 | 显示全部楼层
本帖最后由 randolpha 于 2020-9-12 14:40 编辑

阁下虚拟资产这么多,起码出500信元
study#ls
a.log  do.sh
study#cat a.log
I638<2>    INV
I638<1>    INV
I638<0>    INV
I633<0>    NAND2
I633<1>    NAND2
I633<2>    NAND2
I888<0>    OR2
I638<3>    INV
I888<1>    OR2
I633<3>    NAND2
study#./do.sh a.log
I633[0:3]        NAND2
I638[3:0]        INV
I888[0:1]        OR2
study#ls
a.log  do.sh
study#



发表于 2020-9-10 11:48:23 | 显示全部楼层


amodaman 发表于 2020-9-10 11:28
awk脚本也可以轻松做到


那还等什么,赶紧领取...

 楼主| 发表于 2020-9-10 18:06:43 | 显示全部楼层


randolpha 发表于 2020-9-10 11:47
阁下虚拟资产这么多,起码出500信元
study#echo -e "I888    AND2" >> b.txt
study#cat b.txt


我感觉你这没法实现我想要的结果啊,还是我没理解,能否详细说明一下呢?大神
 楼主| 发表于 2020-9-10 18:07:36 | 显示全部楼层


amodaman 发表于 2020-9-10 11:28
awk脚本也可以轻松做到


单靠awk不行吧
发表于 2020-9-10 18:24:20 | 显示全部楼层
本帖最后由 randolpha 于 2020-9-10 18:27 编辑


korli319 发表于 2020-9-10 18:06
我感觉你这没法实现我想要的结果啊,还是我没理解,能否详细说明一下呢?大神
...


我加了一行数据上去,这没什么疑惑吧?
可以随意增加数据上去.
也就是说
根据cell的种类比如nand2,and3,inv等等,实例个数,都是随意的.
删除了一些输出提示,这是否清楚了?不过你是大款,所以奖金要高比普通坛友啊,呵呵.

 楼主| 发表于 2020-9-10 18:48:37 | 显示全部楼层
本帖最后由 korli319 于 2020-9-10 18:49 编辑


randolpha 发表于 2020-9-10 18:24
我加了一行数据上去,这没什么疑惑吧?
可以随意增加数据上去.
也就是说



增加一些实例是可以的,但是echo -e "I888<1>    AND2" >> b.txt 这句应该没法实现成  I888[0-1]        AND2    吧??

而且I888也是在不停变的,字符 I 不会变,后面的数字会变,
还有第一行开头如果是I888<1> 第二行开头如果是I888 <0>,那么输出就是I888[1:0],
相反如果第一行开头是I888<0> ,第二行开头是I888<1>,那么输出就是I888[0:1]

如果大神能帮我解决了这个问题,那信元多的是,反正也用不完,哈哈~~



您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-23 00:26 , Processed in 0.022487 second(s), 7 queries , Gzip On, Redis On.

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