Windows命令行/ shell – 当将文件附加到另一个文件时,如何忽略匹配正则expression式的行?

我不熟悉Windowsshell。 所以,假设我的文件是这样的:

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

我正在追加这样的:

 type file.txt >> AppendHere.txt 

这附加整个文件。 我怎样才能让它跳过以“DontAppend”开头的行?

命令findstr会让你搜索不包含字符串或正则表达式的行,所以你可以使用:

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

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

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

要么得到grep的Windows或您可以使用Windows自己的find命令

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

/v选项意味着不匹配你的字符串的输出行。

find像这样非常简单的东西的作品,但是你将需要一个真正的过滤工具,如grep