一部の行に「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以外のすべてに一致します。