在档案中搜索

在档案中搜索

有谁能帮我使用这个我应该在 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

搜索所有文件(以及子目录中的文件)。您也可以*用多个文件名替换。

如果有人有更好的解决方案,我很高兴听到。

相关内容