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