grep 命令行在文件夹中的所有 .zip 中搜索字符串并将其提取。在 Windows 7 中

grep 命令行在文件夹中的所有 .zip 中搜索字符串并将其提取。在 Windows 7 中

我是 grep 的新手,所以请放轻松,谢谢。这是我所拥有的,我有一个文件夹,其中包含 1000 个小尺寸的 .zip 文件,我想使用字符串搜索所有文件,如果匹配,则仅将匹配的字符串提取到另一个文件夹。

grep "u74" *.zip

好的,上面的代码 ii 将 1 个 zip 文件放在 grep 文件夹中,并搜索 u74 并且匹配。

我如何制作一个 search.bat 并将所有 zip 保留在其原始文件夹中,而不是将它们移动到 grep 文件夹。我的 grep 安装文件夹

C:\Program 文件(x86)\GnuWin32\bin

这是我找到的一些代码但它不起作用

for i in *.zip; do 
    echo "scanning $i";
grep -oP "u74" <(unzip -l "$i") && echo "Found in $i" || echo "Not Found in $i"; 
pause

这正是我想要的,但它不起作用最后我想在相同的 zip 路径中创建一个文件夹并找到并移动所有找到的文件。

答案1

你建议在问题中使用 grep 的方式意味着它会在压缩数据。

您找到的 Unix/Linux 脚本(正如 David 所观察到的,它无法在 Win 上运行)通过解压缩子进程中的每个 zip 来解决此问题,即(unzip -l ...)部分。

除了在 Windows 上安装 cygwin 或 python 外,你可以将所有 zip 文件解压到 D:\My_Data 等位置,然后

grep "u74" D:\My_Data\*.*

或者

你进入 D:\My_Data 然后从那里运行

C:\Program Files (x86)\GnuWin32\bin\grep "u74" *.*

相关内容