如何在包含在嵌套的.tar.gz档案中的源代码文件中找到特定的文本字符串,打包在其他rar存档(48MB)中? (在Windows 7上)我尝试使用LookDisk,但它会挂起并崩溃。是否有可能找到使用系统 findstr 实用程序,以及这是什么正则表达式?或者使用其他搜索工具,不需要安装(便携式)。
答案 0 :(得分:1)
基于SuperUser answer此示例批处理文件搜索多个.tar.gz
存档文件(在命令行中指定)并输出包含指定字符串的.tar.gz
的文件名。
它可以在不将任何文件输出到磁盘的情况下执行此操作。
它依赖于7-Zip,你可以使用它的便携版本 - 它不需要安装" - 但可以使用。
将变量SEARCHSTR
(当前为hell
)的值更改为您要搜索的字符串。
我无法看到任何明显或简单的方法返回包含档案内文字的文件的文件名。
@echo off
setlocal enabledelayedexpansion
set SEARCHSTR=hell
rem Ensure 7z.exe is in your path or in current directory... ie. set PATH=%PATH%;C:\Program Files\7-Zip
rem Loop through all commandline args - the tar.gz files
for %%i in (%*) do (
rem Extract without an intermediate .tar
7z x "%%i" -so | 7z x -si -ttar -so | findstr /C:"%SEARCHSTR%"
if "!ERRORLEVEL!" == "0" (
set FOUNDIN=%%i
rem Exit after we find the first occurrence.
goto found
)
)
:notfound
echo Unable to locate search string "%SEARCHSTR%" in specified files.
goto end
:found
echo Found search string "%SEARCHSTR%" in "%FOUNDIN%".
:end
下载Official 7-Zip Download page摘录中列出的官方7-Zip Command Line Version
个,并使用7za.exe
它是一个自包含的7-Zip命令行版本,这意味着您赢了'我需要7za.exe
。
您需要将7z
的两次出现更改为7za
才能使用此版本。
这一行:
7z x "%%i" -so | 7z x -si -ttar -so | findstr /C:"%SEARCHSTR%"
更改为:
7za x "%%i" -so | 7za x -si -ttar -so | findstr /C:"%SEARCHSTR%"