ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包

chatgpt,学习,shell,脚本,一例,查找,版本,冲突,第三方,jar · 浏览次数 : 34

小编点评

```shell #!/bin/bash # 在3rd目录下面进行操作 find third -name "*.jar" -print0 | while IFS= read -r -d $'\0' file; do # 将所有文件名中的梳子替换为空 file_name=$(sed 's/[0-9]*//g' <<< "$file" | tr '[:upper:]' '[:lower:]') # 将数字已经替换为空的名字进行大小写替换 file_name=${file_name%\.}${file_name#$} # 将最终的结果进行排序和计数第一版本的脚本为 sort -n "$file_name" | uniq -c | sort -k1h # 将第二个版本的脚本为 echo "$file_name" | sort -n | uniq -c | sort -k1h done ```

正文

ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包


背景

自从换了Java后
产品里面用到了非常多的第三方组建,也就是很多jar包.

产品内的研发规范要求, jar包不能带版本号和snapshot的标识
必须使用原始的文件名, 避免有多个版本导致java类加载器出现顺序问题导致异常. 

但是第三方jar包其实没有这么过规则. 大部分都是使用带版本号的进行处理
这样有几个比较大的好处, 可以很直观的看到版本. 对开发测试工作量来说比较有益处

但是处在一个大的弊端在于, 如果产品里面包含了多个版本, 单纯通过文件名就很难进行分析和判断了. 
因为最近要换一个环境, 今天同事问到我后 感觉可以通过chatgpt的方式进行一下问题解决. 
比自己之前单纯的自己死抠代码和百度要好多了.

然后发现有了思路之后三分钟就可以讲脚本写好. 

思路

大部分重复的jar包(只能这么说, 如果改了名字, 这个方法也无能为力)
一般是通过数字版本号来进行区分. 

如果将数字版本号trim掉,然后再将大小写全部改为小写, 再进行排序就可以很简单的找到可能有版本冲突的jar包了. 
刚才自己花了十分钟看到了三个jar包存在问题. 

然后尝试使用脚本进行处理 发现3分钟写好, 就可以发现四个冲版本冲突的jar包. 
思路很简单
1. 在3rd的目录下面进行操作
2. 将所有的文件名中的梳子替换为空
3. 将数字已经替换为空的名字进行大小写替换.
4. 将最终的结果进行排序和计数

第一版本的脚本为:

for i in $(for i in `ls` ; do echo $i | sed 's/[0-9]*//g'  ; done) ; do echo $i |tr '[:upper:]' '[:lower:]' ; done |sort |uniq -c |sort -k1h

发现自己多此一举了, 第二个版本的脚本为:

for i in `ls` ; do echo $i | sed 's/[0-9]*//g' |tr '[:upper:]' '[:lower:]' ; done |sort |uniq -c |sort -k1h

更容易的处理方式为:

for i in `ls` ; do echo $i | sed 's/[0-9]*//g' |tr '[:upper:]' '[:lower:]' ; done |sort |uniq -c |sort -k1h |awk '$1 >1 {print}'

结果为:

      2 ehcache-...jar
      2 hutool-all-...jar
      2 okhttp-...jar
      3 netty-codec-http-...final.jar

命令查找相当简单

与ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包相似的内容:

ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包

# ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包 ## 背景 ``` 自从换了Java后 产品里面用到了非常多的第三方组建,也就是很多jar包. 产品内的研发规范要求, jar包不能带版本号和snapshot的标识 必须使用原始的文件名, 避免有多个版本导致java类加载器

Oracle AWR学习之二-利用ChatGPT编写一键获取AWR报告的脚本

# Oracle AWR学习之二-ChatGPT提升效率之n ## 背景 ``` 之前生成awr报告比较麻烦, 想着能够一键生成. 再辅以部分shell或者是python处理就可以进行细致的分析. 这一块其实还是比较简单的, 在ChatGPT加持下的确能够极大的提高自己的工作效率. 但是怀疑国内的学

疯狂GC的第二种处理方式-ChatGPT的学习之四

# 疯狂GC的第二种处理方式-ChatGPT的学习之四 ## 摘要 ``` 上一个脚本太复杂了. 而且要改启动脚本. 课间休息跟人扯淡聊起来 chatGPT 发现他的语法很有用 但是思路不太对. 不过突然根据文档里写的想到了一个新的思路. ``` ## 获取GC信息 ``` while true d

文章学习|解构大模型之困,打开联邦大模型时代

> 学习转载文章:[解构大模型之困,打开联邦大模型时代](https://mp.weixin.qq.com/s/S4m9CgsGpGS6qhtbT9rBag) ## 引言 自从 ChatGPT 横空出世后,一石激起千层浪,人工智能也正在从感知理解走向生成创造,这是一个关键里程碑。生成式大模型完成了从

文章学习:基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破

学习文章:英特尔×同态科技 | 基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破 文章 人工智能的安全隐患 ChatGPT的成功大部分来源于海量的数据支撑和丰富的数据维度,基于13亿参数量的庞大模型,随着用户的不断涌入,ChatGPT不断迭代进化新的“知识”,而在模型表达能力的增强之

读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理

ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓。但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我们将特定领域的学习材料“喂”给ChatGPT,让它“学习”后再来回答专业问题。 专业领域语料问题 所谓专业领域语料问题,

pytorch学习笔记——timm库

当使用ChatGPT帮我们工作的时候,确实很大一部分人就会失业,当然也有很大一部分人收益其中。我今天继续使用其帮我了解新的内容,也就是timm库。毫不夸张的说,Chat GPT比百分之80的博客讲的更清楚更好,仅次于源码。 当提到计算机视觉的深度学习框架时,PyTorch无疑是最受欢迎的选择之一。P

【动画进阶】类 ChatGpt 多行文本打字效果

今天我们来学习一个有意思的多行文本输入打字效果,像是这样: 这个效果其实本身并非特别困难,实现的方式也很多,在本文中,我们更多的会聚焦于整个多行打字效果最后的动态光标的实现。 也就是如何在文本不断变长,在不确定行数的情况下,让文字的最末行右侧处,一直有一个不断闪烁的光标效果: 单行文本打字效果 在此

人工智能机器学习底层原理剖析,人造神经元,您一定能看懂,通俗解释把AI“黑话”转化为“白话文”

按照固有思维方式,人们总以为人工智能是一个莫测高深的行业,这个行业的人都是高智商人群,无论是写文章还是和人讲话,总是讳莫如深,接着就是蹦出一些“高级”词汇,什么“神经网络”,什么“卷积神经”之类,教人半懂不懂的。尤其ChatGPT的风靡一时,更加“神话”了这个行业,用鲁迅先生形容诸葛武侯的话来讲:“多智而近妖”。 事实上,根据二八定理,和别的行业一样,人工智能行业内真正顶尖的天才也就是20%,他

ChatGPT API使用介绍

1.概述 随着人工智能技术的不断发展,越来越多的AI产品被应用到各个领域,其中最具代表性的莫过于人工智能语言模型。语言模型是一种可以通过学习大量语言数据来预测文本或语音的技术,其应用范围十分广泛,如智能客服、机器翻译、语音助手等。 而ChatGPT是其中最为优秀的语言模型之一。ChatGPT是Ope