一部の行に「ERROR」という文字列が含まれるログファイルがあります。ERRORがないすべての行を削除して、修正が必要なものだけを確認できるようにします。私はvimで次のようなことをするつもりでした:
%s /!(エラー)//
エラー以外の行を空の文字列に置き換えます。
標準の正規表現でこれができるとは思いませんが、間違っているかもしれません...
コマンドを使用して、:g!
一致しないすべての行を削除します。
:g!/ERROR/d
vimでは、バッファー内のテキストに対して任意のフィルターコマンドを実行できます。例えば、
:%!grep ERROR
バッファ全体を、指定された正規表現に一致する行のみに置き換えます。
これは、単なる以外の場合にも役立ちgrep
ます。たとえば、バッファ内の行を。で並べ替えることができます:%!sort
。または、V
コマンドを使用してブロックをマークしてから、任意の範囲のテキストに対して同じことを行うことができます:!filter-command
(vim'<,'>
は、現在マークされているブロックを示すために自動的に入力します)。
* nixの場合、grep-vまたはawkを使用できます
awk '!/ERROR/' file | more
Windowsマシンでは、findstrを使用できます
findstr /v /c:ERROR file | more
ネガティブ先読みの使用は機能しました。
負に一致する正規表現は^を使用します。[^E]はE以外のすべてに一致します。