0

我不熟悉 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”开头的行?

4

2 回答 2

3

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

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

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

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

于 2012-10-11T11:55:26.673 回答
0

要么获取grepWindows,要么你可以使用 Windows 自己的find命令

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

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

find适用于像这样非常简单的事情,但你将需要一个真正的过滤工具,比如grep

于 2012-10-11T11:53:54.747 回答