我有一个这样的文件:
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行,因为它是完全匹配。有什么帮助?
答案 0 :(得分:1)
FIND不能做你想要的。但FINDSTR可以: - )
将FINDSTR与正则表达式锚点^
一起用于行的开头,将$
用于行尾:
findstr /v "^exit;$" "somefile.txt"
或者使用具有完全相同含义的/x
选项,但也可以与字符串文字一起使用,而不仅仅是正则表达式:
findstr /v /x /c:"exit;" "somefile.txt"
请注意,当文本文件使用以回车符/终止的Windows样式行时,行结束$
锚点和/x
选项(以及/e
结束选项)才能正常工作换行。简单地使用换行符结束的Unix样式行将无法正常工作。
答案 1 :(得分:0)
使用findstr
命令。而不是find
它更好,也需要正则表达式。
type somefile | findstr /v "^exit;"
或
findstr /v "^exit;" somefile
祝你好运