0

次のようなファイルがあります。

exit;
exit_cool
int exit =30
exitstatus;
exit ;
 exit;
some exit;
coolexit;
this line should not be removed.
exitexit;

「exit;」のみを含む行を削除したい このファイルから.だから私はコマンドがファイルから最初の行だけを削除したい.私は現在このコマンドを使用しています:

type somefile.txt | find /v "exit;"

しかし、私が得ている出力は次のとおりです。

exit_cool
int exit =30
exitstatus;
exit ;
this line should not be removed.

あなたが見たように、コマンドは を含むすべての行をexit;削除しました.1行目だけが完全に一致するので削除したい.何か助けはありますか?

4

2 に答える 2

1

FIND は、あなたが望むことを行うことができません。しかし、FINDSTRはできます:-)

^行頭と行末の正規表現アンカーでFINDSTR を使用する$:

findstr /v "^exit;$" "somefile.txt"

または/x、まったく同じ意味を持つオプションを使用しますが、正規表現だけでなく、文字列リテラルでも使用できます。

findstr /v /x /c:"exit;" "somefile.txt"

行末$アンカーと/xオプション (および/e終了オプション) は、テキスト ファイルがキャリッジ リターン/ライン フィードで終了する Windows スタイルの行を使用している場合にのみ適切に機能することに注意してください。単純に改行で終わる Unix スタイルの行は、正しく機能しません。

于 2013-01-20T17:51:13.370 に答える
0

コマンドを使用findstrします。の代わりに、find より良い正規表現も使用できます。

type somefile | findstr /v "^exit;"

また

findstr /v "^exit;" somefile

幸運を

于 2013-01-20T12:12:43.250 に答える