有谁能帮我使用这个我应该在 Ubuntu 中执行的程序?该程序是:一个 shell 脚本,用于识别在命令行上作为参数提供的模板(模式)。搜索也在档案中执行。对于档案,列表是单独的。提前非常感谢你!
答案1
对于Tar
档案,您可以使用:
tar -Oxvf ARCHIVE_NAME 2>/dev/null | grep "Some pattern or Regex"
或者搜索Tar
当前目录中的所有文件:
list=`find . | grep -i "\.tar\." | xargs`
IFS=" " read -ra array <<< $list
for i in "${array[@]}"
do
tar -Oxvf $i 2>/dev/null | grep "Some pattern or Regex"
done
*重要提示:如果你有只有.tar
扩展名的 tar 文件,请更改
grep -i "\.tar\."
改为:
grep -i "\.tar"
.tar
但要小心,如果您的文件名中间的模式实际上不是 tar 档案,则可能会导致问题和一些错误。
*2>/dev/null/
如果希望文件名称出现在内容上方,请删除。
对于Zip
文件:
unzip -c ARCHIVE_NAME | grep "Some pattern or regex"
或者对于所有zip
文件:
list=`find . | grep -i "\.zip" | xargs`
IFS=" " read -ra array <<< $list
for i in "${array[@]}"
do
unzip -c $i | grep "Some pattern or Regex"
done
对于常规文件只需:
grep "Some pattern or regex" * -r
搜索所有文件(以及子目录中的文件)。您也可以*
用多个文件名替换。
如果有人有更好的解决方案,我很高兴听到。