私は使用しているコマンドラインプログラムをコンソールに記録しています。しかし、いくつかのバギーファームウェアには、それは1秒ごとに特定のエラーを出力します。grepを使用したフィルタコマンド出力
grep
を使用して出力をフィルタリングすると、この特定のエラーラインがコンソールに記録されないようにするにはどうすればよいですか?
私はを取り除きたい正確なエラーは次のとおりです。
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
ので、同様に、私は、それで問題のある行でsh
スクリプトを作成する場合:
#!/bin/sh
echo "[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned"
echo "testing"
そして、それを実行し、予想通り、私はそれをtにgrep -v
を使用して実行した場合の出力は、今、
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
testing
ですこの行を省略するryは、そのよう:
./script.sh | grep -v "[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned"
出力はまだです:
私は同じスクリプトを実行する場合は、は、この時間はtesting
を含む行を取り除くしようとして
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
testing
、そうのような:
./script.sh | grep -v "testing"
そして出力が、期待されるとおり
[1] [NTC] [NET] netcam_read_html_jpeg: Potential split boundary - 1447 chars flushed, 1 re-positioned
今ここで間違って何?明らかに、私は右のコマンドを使用しています。これは2番目の例で動作するためです。それは私が望む実際の行を省略するようには機能しません!
私には何が欠けていますか?
https://stackoverflow.com/help/how-to-askをお読みください。また、自分で行った試行を表示してください。あなたは尋ねる前にいくつかの試行をしたと思われます。 –
@EtanReisner - 更新された質問 –
大括弧は正規表現のメタキャラクタです。彼らは文字クラスを意味する。彼らは通常の文字として一致しません。 ( '\\'で)エスケープしたり、固定パターン( '' fgrep'や '' grep'への '-F'フラグ)を使うようにgrepに伝える必要があります。 –