通过脚本检测python的项目依赖包及版本
脚本来自于网络,加上注解,具体见以下shell脚本
#!/bin/env/bash # 当前目录按类型查找文件 | 过滤py文件 | py文件中 正则过滤 from or import打头的行 | 指定"py:"作为分隔字符,输出第二项 | 升序排序 | 去重 > 重定向输出到res0.log find . -type f |grep py|xargs grep -E '^from|^import'| awk -F "py:" {'print $2'}|sort|uniq>res0.log # 将文件中的from替换为import s/pattern-to-find/replacement-pattern/g(global) sed -i 's/from/import/g' res0.log # 打开文件 | 指定"import "作为分隔符输出第二项 | 指定"."分隔符输出第一项 > 重定向输出到res1.log cat res0.log |awk -F "import " {'print $2'}|awk -F '.' {'print $1'}> res1.log # 删除空格 sed -i "s/,[ ]*/\n/g" res1.log # 删除空行 sed -i “s/\s/\n/g" res1.log # 打开文件 | 排序 | 去重 | while循环 pip list 过滤当前行的包,有的重定向到res2.log中 cat res1.log|sort|uniq |while read line do echo `pip list|grep $line` >> res2.log done # 记录字段重定向到res3.log awk NF res2.log > res3.log # 替换(为== sed -i 's/ (/==/g' res3.log # 直接替换) sed -i 's/)//g' res3.log # 删除# sed -i "s# #\n#g" res3.log # 对文件排序 | 去重 重定向到requires.txt sort res3.log|uniq >requests.txt # 删除准备文件 rm /tmp/res*
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!