我是 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" *.*