用Findstr替换Awk语句

时间:2012-09-10 20:21:50

标签: windows awk findstr

我正在试图弄清楚如何利用findstr以便它在awk中执行与此行相同的操作:

wk.exe "begin {temp=0}/^stringMarker/{temp=1}{if (temp==1)print$0}" %TEMP%\input.txt >%TEMP%\output.txt

这是我现在能想到的全部内容:

@ECHO OFF
findstr /b /c:"Hello" Hello.bat > nul
if errorlevel 1 (
echo Search Failed
) else (
echo Search Sucessful
)

正如您所看到的,后半部分代码丢失了。我需要帮助来了解如何在stringMarker之后获取行,然后才能将它们重定向到文件中。

干杯

1 个答案:

答案 0 :(得分:0)

如果可能的话,我建议使用gawk的windows端口。如果由于某些原因你不能,那么vbscript可能效果最好吗?

如果必须使用findstr和cmd,则以下内容应该有效。

find_thing.cmd "^stringMarket" in.txt > out.txt

<强> find_thing.cmd

@echo off

if "%~1"=="" ((echo no arguments) && exit /b)
if "%~2"=="" ((echo insufficient arguments) && exit /b)

set query=%~1
set file_name=%~2

for /f "tokens=1,2* delims=:" %%a in ('findstr /r /n "%query%" "%file_name%"') do (
    echo %%b
    more +%%a "%file_name%"
    exit /b
)