Windows命令行/ shell - 在将文件附加到另一个文件时,如何忽略与正则表达式匹配的行?

时间:2012-10-11 11:46:36

标签: windows command-line batch-file

我不熟悉Windows shell。所以,假设我的文件是:

DontAppend this line shouldn't be appended
DontAppend this line shouldn't be either
Some lines
more lines

我这样追加:

type file.txt >> AppendHere.txt

这会附加整个文件。我该怎么做才能跳过以“DontAppend”开头的行?

2 个答案:

答案 0 :(得分:3)

命令findstr将允许您搜索不包含字符串或正则表达式的行,以便您可以使用:

findstr /vrc:"^[^A-Za-z0-9]*DontAppend" file.txt >> AppendHere.txt

/ r选项表示它应该使用正则表达式,而插入符号(^)表示它应该以字符串开头。

编辑:为可能解决Unicode问题的非字母数字字符添加了一个过滤器(Unicode文件有时在开头有一个不可打印的指示符)。

答案 1 :(得分:0)

获取Windows的grep或者您可以使用Windows自己的find命令

type so.txt|find /v "DontAppend" >> output.txt

/v选项表示与您的字符串不匹配的输出行。

find适用于非常简单的事情,但您需要一个真正的过滤工具,例如grep