用shell脚本 怎么列出名称相同,版本不同的插件

王诺诺2016 2011-07-15 02:54:34
例如,文件夹plugins下有下列插件信息:
org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610 文件夹格式插件
org.eclipse.core.runtime.compatibility.registry_3.2.200.v20100731 文件夹格式插件
org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731 文件夹格式插件
org.apache.xerces_2.8.0.v200705301630.jar
org.apache.xerces_2.8.0.v201101010101.jar
org.apache.commons.el_1.0.0.v200806031608.jar
org.apache.commons.logging_1.0.4.v20080605-1930.jar
org.apache.commons.logging_1.0.4.v20080605-1930.jar
org.apache.commons.logging_1.0.4.v20080611-1930.jar

怎么列出其中的相同插件:
org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610
org.eclipse.core.runtime.compatibility.registry_3.2.200.v20100731
org.apache.xerces_2.8.0.v200705301630.jar
org.apache.xerces_2.8.0.v201101010101.jar
org.apache.commons.logging_1.0.4.v20080605-1930.jar
org.apache.commons.logging_1.0.4.v20080611-1930.jar
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
昵称很不好取 2011-07-16
  • 打赏
  • 举报
回复
awk -F "_" 'BEGIN{str=""}{for(i=1;i<NF;i++){if($1==str){print $0} str=$1}}' yourfile
王诺诺2016 2011-07-15
  • 打赏
  • 举报
回复
我考虑这样做:
把上面所有文件按照“_”截取出来(同一个插件前面是相同的,这一步我已经完成)
选出相同的
org.apache.commons.logging
org.apache.xerces
org.eclipse.core.runtime.compatibility.registry
然后根据这一部分来列出名称相同,版本不同的插件

只是剩下的不知道该怎么实现
昵称很不好取 2011-07-15
  • 打赏
  • 举报
回复
有点难,来个不是方法的方法,楼主可以参考下
比较每一行与上一行,如果长度相等并且第三个字段相同,就认为是同一个插件
虽然有点不太准确,但凑合能用
awk 'BEGIN{FS=".";len=0;str=""}{if(length($0)==len&&$3==str) print $0;len=length($0);str=$3;}' yourfile
王诺诺2016 2011-07-15
  • 打赏
  • 举报
回复
谢谢哥们儿了!盼望高手
louyong0571 2011-07-15
  • 打赏
  • 举报
回复
有难度,帮顶加关注

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧