我正在将cvs diff的输出重定向到log.txt文件。
C:\Temp> cvs diff -b -B -r 1.5 -r 1.6 Project\src\Sample.java > log.txt
执行上述命令时生成的log.txt
文件内容如下:
Index: project/src/Sample.java
===================================================================
RCS file: \repobase/src/Sample.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -r1.5 -r1.6
78a79,82
> public java.lang.Class getJavaClass() {
> return Sample.class;
> }
>
92c96
< return Demo.getparentClass(this.getClass());
---
> return MyClass.clazz;
此文件的所有以<
或>
开头的行都不是必需的。我想忽略所有这些行只是为了将最小的休息推入log.txt
文件。我怎么能通过Windows命令行执行此操作?
答案 0 :(得分:1)
也许cvs diff --brief选项会给你你想要的东西。
如果没有,那么你可以将diff输出传递给FINDSDTR并让它过滤行
cvs diff -b -B -r 1.5 -r 1.6 Project\src\Sample.java | findstr /vbl "< >" > log.txt
/ v选项表示打印不包含任何字符串的行
/ b选项表示匹配从每行开头的搜索字符串
/ l表示文字搜索字符串(与正则表达式相对)
搜索字符串在每个空格处拆分,因此“&lt;&gt;”实际上是2个搜索字符串。
有关FINDSTR的更多帮助,请使用“FINDSTR /?”。
有关其他帮助,请参阅What are the undocumented features and limitations of the Windows FINDSTR command?