0

我有一个这样的文件:

exit;
exit_cool
int exit =30
exitstatus;
exit ;
 exit;
some exit;
coolexit;
this line should not be removed.
exitexit;

我想删除仅包含“exit;”的行 从此文件中。所以我希望该命令仅从文件中删除第一行。我目前正在使用此命令:

type somefile.txt | find /v "exit;"

但我得到的输出是:

exit_cool
int exit =30
exitstatus;
exit ;
this line should not be removed.

正如您所看到的,该命令删除了所有包含的行exit;。我只希望删除第 1 行,因为它是完全匹配的。有帮助吗?

4

2 回答 2

1

FIND 不能做你想做的事。但是 FINDSTR 可以:-)

将 FINDSTR 与正则表达式锚点^一起用于行首和$行尾:

findstr /v "^exit;$" "somefile.txt"

或者使用/x具有完全相同含义的选项,但也可以与字符串文字一起使用,而不仅仅是正则表达式:

findstr /v /x /c:"exit;" "somefile.txt"

请注意,行尾$锚和/x选项(和/e结束选项)仅在文本文件使用以回车/换行符终止的 Windows 样式行时才能正常工作。仅以换行符结尾的 Unix 样式行将无法正常工作。

于 2013-01-20T17:51:13.370 回答
0

使用findstr命令。而不是find 它更好,它也需要正则表达式。

type somefile | findstr /v "^exit;"

或者

findstr /v "^exit;" somefile

祝你好运

于 2013-01-20T12:12:43.250 回答