0

私はWindowsシェルに精通していません。だから、私のファイルが次のようなものだとしましょう:

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

Windows用に取得するか、grepWindows独自のfindコマンドを使用できます

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

この/vオプションは、文字列と一致しない出力行を意味します。

findこのような非常に単純なもので機能しますが、これ以上、次のような実際のフィルタリングツールが必要になりますgrep

于 2012-10-11T11:53:54.747 に答える