#!/bin/bash
##################################################################
# file name: peekzip #
# see matched patterns in zip/jar/war or any zip compatible file #
##################################################################
ME=`basename $0`
showHelp()
{
echo "usage $ME -h"
echo "usage $ME [-i] [-c] [-n] [-d depth] text_pattern [suffix1] [...]"
echo "usage $ME [-i] [-c] [-n] [-d depth] -f zip_file text_pattern"
echo "-h: show help"
echo "-i: ingore case"
echo "-c: show command"
echo "-n: show line number"
echo "-d: search depth"
echo "-f: zip compatible file name"
echo "The file suffix is case insensitive"
}
DEFAULT_SUFFIX="zip jar war ear"
WORK_DIR=/tmp
TMP_FILE=$WORK_DIR/$ME.$$
INVALID=1
IGNORE_CASE=1
SHOW_COMMAND=1
NUMBER=1
FILE=1
DEPTH=1
# check arguments
while getopts :icnhf:d: OPTION
do
case $OPTION in
i) IGNORE_CASE=0
;;
c) SHOW_COMMAND=0
;;
n) NUMBER=0
;;
d) DEPTH=0
MAX_DEPTH=$OPTARG
;;
f) FILE=0
FILE_NAME=$OPTARG
;;
h) showHelp
exit 0
;;
*) INVALID=0
;;
esac
done
[ $INVALID -eq 0 ] && showHelp && exit 1
# assigned file name
[ $FILE -eq 0 ] && [ -z "$FILE_NAME" ] && showHelp && exit 1
shift `expr $OPTIND - 1`
PATTERN=$1
shift
SUFFIX=$*
[ -z "$PATTERN" ] && showHelp && exit 1
#echo "PATTERN=$PATTERN"
#echo "SUFFIX=$SUFFIX"
#echo "FILE_NAME=$FILE_NAME"
#echo "MAX_DEPTH=$MAX_DEPTH"
# set arguments
[ $IGNORE_CASE -eq 0 ] && IGNORE_CASE_ARG=" -i "
[ $NUMBER -eq 0 ] && NUMBER_ARG=" -n "
[ $DEPTH -eq 0 ] && MAX_DEPTH_ARG=" -maxdepth $MAX_DEPTH "
if [ $FILE -eq 0 ]
then
FILE_NAME_ARG=" -name /"$FILE_NAME/" "
else
# reset suffix if no suffix was specified
[ -z "$SUFFIX" ] && SUFFIX=$DEFAULT_SUFFIX
for VAR in $SUFFIX
do
S=$S"/|"$VAR
done
SUFFIX_PATTERN=`echo $S | sed 's///|//'`
FILE_NAME_ARG=" -iregex /".+/./($SUFFIX_PATTERN/)/" "
fi
FINDCMD="find . $MAX_DEPTH_ARG -type f $FILE_NAME_ARG 2>/dev/null $SUFFIX_ARG"
[ $SHOW_COMMAND -eq 0 ] && echo $FINDCMD
ZIP_FILES=`eval $FINDCMD`
for VAR in $ZIP_FILES
do
CMD="unzip -l $VAR 2>/dev/null | grep $IGNORE_CASE_ARG -E $PATTERN > $TMP_FILE"
[ $SHOW_COMMAND -eq 0 ] && echo $CMD
eval $CMD
[ ! -f $TMP_FILE ] && echo "Failed to create temp file $TMP_FILE!" && exit 1
WORD_COUNT=`wc -w $TMP_FILE | awk '{print$1}'`
if [ $WORD_COUNT -gt 0 ]
then
# got matched lines
echo -e "/033[;33;1m" # highlight the title line as bold yellow
echo "-------------------------------$VAR-------------------------------"
echo -e "/033[;0m/c" # rest font color
cat $NUMBER_ARG $TMP_FILE
/bin/rm -rf $TMP_FILE
fi
done
exit 0
相关推荐
机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取
机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取
使用perl计算日期
#!/usr/bin/perlsub addDate{ ($delt) = @_; my $date = time() + 60 * 60 * 24 * $delt; (undef, undef, undef, $day, $month, $year) = localtime $date; $year += 1900; $month++;
科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
findline
#!/bin/bash ###################################################### # file name: findline # # find lines
产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)
本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。
ax
#!/bin/bash ########################################### # file name: ax # # set file to be executable for all users # ########################################### ME=`basename $0` showHelp() { echo "usage $ME file_name1 [
CAN:CANape使用Function处理数据
CANape中的function and script习惯称之为脚本(实际为函数和脚本)。这里介绍function,可以实现简单信号a和信号b乘法,比如计算功率(转速与扭矩乘)。该功能前期有专业人员做支援,当时问其编制方法,其回答是看帮助文件。现在没有支援自己动手。 功能描述:电压信号阶梯增加,每次保持1.5s,测量后0.5s位移平均值(假设信号步长10ms,需要取样50个点,但该脚本中点的数目为10个)。图示如下: 刚开始看了软件Function definition→Library function,
killprocess
#!/usr/bin/perl######################################################################## file name: killprocess ## kill process by pid
请叫我鱼拆,2024扫地机器人的第一次拆机
从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。
当LightGBM推理遇上GPU:3种替代方案性能对比(含ONNX实战代码)
本文针对LightGBM官方不支持GPU推理的性能瓶颈,深度评测了RAPIDS cuML、ONNX Runtime GPU和Triton Inference Server三种GPU加速推理替代方案。通过详尽的性能对比和实战代码,为高并发、低延迟的在线预测场景提供了清晰的选型指南,帮助工程师打破推理性能枷锁,实现显著的吞吐量提升。
lessfind
#!/usr/bin/perl######################################################################## file name: lessfind ## use less to open specific files b
Axure RP 9在Windows 11环境下的高效安装与配置指南
本文提供Axure RP 9在Windows 11系统下的详细安装步骤与配置指南。针对Win11安全特性,从获取官方安装资源、调整系统权限,到定制化安装路径、精准汉化及性能优化,系统性地解决了安装闪退、汉化失败、运行卡顿等常见问题,确保用户获得稳定流畅的原型设计体验。
catfind
#!/usr/bin/perl######################################################################## file name: catfind ## use cat to open specific files by
SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码)
本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。
【C++实战(62)】从0到1:C++打造TCP网络通信实战指南
本文是 C++ 网络编程实战专栏第 62 篇,聚焦 TCP 客户端与服务端开发。先阐述 TCP 协议特点、核心 API 及阻塞与非阻塞 IO 区别,打牢基础;再详解 TCP 服务端初始化、客户端连接处理与数据收发,以及客户端初始化、异常处理和协议设计;最后通过简易聊天系统实战,介绍线程池应用、协议解析及稳定性测试,助力开发者掌握 TCP 网络编程实操技能。
vifind
#!/usr/bin/perl ################################################## # file name: vifind.pl # # vi specific files by pattern in current folder # ################################################## my $me = `basename $0`; chomp
黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)
UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........
lesslast
#!/bin/bash######################################################################## file name: lesslast ## use less to open last file by ls -lt
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
vilast
#!/usr/bin/ksh ###################################### # vi last file by 'ls -ltrF' command # ###################################### vi `ls -ltrF | sed -n '$p' | awk {'print$NF'}`
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
catlast
#!/bin/bash ################################################################## # file name: cat last # # display last file by 'ls -ltrF' command # #######################################
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
findfile
#!/usr/bin/ksh ########################################################### # file name: findline # # fin
x
#!/bin/bash ############################################### # file name: x # # set file to be executable for current users # ############################################### ME=`basename $0` showHelp() { echo "usage
winsw将jar、nginx等注册为Windows服务
执行完后就可以输入 gateway-service.exe start 启动服务了。打开命令框输入gateway-service.exe install。
打包之后两个版本的commons-codec.jar问题
mvn dependency:tree -Dverbose -Dincludes=commons-codec 只看到一个版本 .但是 maven打包出来后 仍然是两个版本的jar包只看,这就是你现在的现象:maven 依赖仲裁只保留一份,但是某个第三方 SDK / 二方包本身是 fat jar,它内部已经打包了一份 commons-codec,打包插件会原样把这个 SDK 整个塞进去,于是最终 BOOT-INF/lib 就出现两份 commons-codec。
1492



被折叠的 条评论
为什么被折叠?



