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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: korli319

[求助] shell脚本求助

[复制链接]
发表于 2020-9-25 21:33:18 | 显示全部楼层
本帖最后由 open-CAD 于 2020-9-26 11:30 编辑




  1. #!/bin/bash
  2. mkdir .ocad
  3. while read line; do
  4.   line="$line"
  5.   line="${line//</ }"
  6.   line="${line//>/ }"
  7.   lineList=($line)
  8.   [ ! -f ${lineList[2]} ] && touch .ocad/${lineList[2]}
  9. done < $1

  10. while read line;do
  11.   lineList="${line//</ }"
  12.   lineList="${lineList//>/ }"
  13.   line=($line)
  14.   if [ -f .ocad/${line[1]} ];then
  15.     echo "$lineList" >> .ocad/${line[1]}
  16.     echo ${line[1]} >> .ocad/cells
  17.   fi
  18. done < $1

  19. sed -i '$!N; /^\(.*\)\n\1$/!P; D' .ocad/cells
  20. while read line;do
  21.    firstLine=(`head -n +1 .ocad/$line`)
  22.    net=${firstLine[0]}
  23.    firstNum=${firstLine[1]}
  24.    finalNum=(`tail -n -1 .ocad/$line`)
  25.    finalNum=${finalNum[1]}
  26.    echo "${net}[${firstNum}:${finalNum}] $line" >> ./output
  27. done < .ocad/cells
  28. rm -rf .ocad


复制代码
比较笨的一种方法
 楼主| 发表于 2020-9-26 00:10:35 | 显示全部楼层


open-CAD 发表于 2020-9-25 21:33
比较笨的一种方法


谢谢你的回复,我执行了一下,似乎有问题 啊!
第3行的 "$1"是个什么东东?
第4行的while read line;do  这一行执行不成功啊,似乎有问题!后面的第5~10行是想干嘛?没太看懂,
当然更后面的更看不懂了,能否写的简单一点?
谢谢~
发表于 2020-9-26 01:03:44 | 显示全部楼层


korli319 发表于 2020-9-26 00:10
谢谢你的回复,我执行了一下,似乎有问题 啊!
第3行的 "$1"是个什么东东?
第4行的while read line;do   ...


$1就是输入,比如把这些文件写到test.sh中。然后 bash test.sh text(你的文件)就行

 楼主| 发表于 2020-9-28 18:56:57 | 显示全部楼层
上面的两个楼主 randolpha 和open-CAD答的都不错!
有哪位知道如何将悬赏同时给两个人呢?纠结~~
 楼主| 发表于 2020-9-29 22:37:09 | 显示全部楼层
本帖最后由 korli319 于 2020-9-29 22:41 编辑


randolpha 发表于 2020-9-28 10:01
请查看附件...do.rar包含

a.log


好像有个BUG啊,如果我输入的文本中的内容是:
639<1>   NAND
639<2>   NAND
639<3>   NAND

输出的结果不是639[1:3]    NAND ,
而是639[2:0]   NAND  ,这显然是有问题的,能否再优化一下呢??


发表于 2020-10-4 16:08:13 | 显示全部楼层


korli319 发表于 2020-9-29 22:37
好像有个BUG啊,如果我输入的文本中的内容是:
639   NAND
639   NAND


你这是新的非合理的需求,去看看你的原始需求.
编号从0开始递增或从某编号开始递减
你从随意的一个非0编号开始递增还是递减怎么确定???
发表于 2020-10-8 01:06:50 来自手机 | 显示全部楼层
awk可以实现
 楼主| 发表于 2020-10-10 13:24:07 | 显示全部楼层


randolpha 发表于 2020-10-4 16:08
你这是新的非合理的需求,去看看你的原始需求.
编号从0开始递增或从某编号开始递减
你从随意的一个非0编号 ...


这个编号有的时候是从0开始递增的,有的是从1开始递增的,是个随机的。
比如:【3:0】,【0:2】,【1:6】,【7:2】之类的,大神能否再帮我修改修改一下呢?谢谢了!
 楼主| 发表于 2020-10-10 13:24:58 | 显示全部楼层


怎么弄呢??
发表于 2020-10-31 10:03:10 | 显示全部楼层


korli319 发表于 2020-10-10 13:24
这个编号有的时候是从0开始递增的,有的是从1开始递增的,是个随机的。
比如:【3:0】,【0:2】,【1: ...


新需求新赏金啊,呵呵,大款出手要大方,坛友才会踊跃出手帮你啊...

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

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 05:17 , Processed in 0.020650 second(s), 5 queries , Gzip On, Redis On.

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