0

我正在使用此命令过滤掉该行set timing on;

type filea.sql | findstr /v "^set timing on;$"

我得到的输出如下:

whenever sqlerror exit 9;

grant select on exfdsfds;


exit;

filea.sql 的内容是:

set timing on;
whenever sqlerror exit 9;

grant select on exfdsfds;

timing on; cool

exit;

为什么要删除timing on; cool?需要对命令进行哪些修改才能避免这种结果?

4

1 回答 1

3

如中所述,如果要匹配包含空格的整个字符串,则findstr /?需要使用:/c

除非参数以 /C 为前缀,否则使用空格分隔多个搜索字符串。例如,'FINDSTR "hello there" xy' 在文件 xy 中搜索 "hello" 或 "there" 'FINDSTR /C:"hello there" xy' 在文件 xy 中搜索 "hello there"

如果您想使用^并且$还需要/r,否则该字符串将被视为文字字符串而不是正则表达式。

type filea.sql | findstr /v /r /c:"^set timing on;$"

如果没有/c该命令,则会从输出中删除包含任何给定单词的所有行,其中包括该行timing on; cool,因为存在与 word 的匹配项timing

于 2013-01-20T14:59:06.027 回答