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