プロが教える店舗&オフィスのセキュリティ対策術

条件Aに当てはまって且つ条件Bに当てはまらないものの件数を表示したいのですが

$ grep -c "条件A" ファイル名 | grep -v "条件B"

としても条件Bが除外されないままの件数しか出てきません。

どのように記述すればいいのでしょうか?

A 回答 (3件)

んじゃ


$ grep "条件A" ファイル名 | grep -v -c "条件B"
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
条件B側に-cを付ければよかったのですね。
全然その発想にいたれませんでした--;
動作確認できました!!

お礼日時:2012/11/19 19:39

パイプラインの動作を理解されていないようですね。


条件Bが -c(一致行数)の出力結果にしかかからないからです。

$ grep "条件A" ファイル名 | grep -v "条件B" | wc -l
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>条件Bが -c(一致行数)の出力結果にしかかからないからです。
やっぱりそうですよね。

>$ grep "条件A" ファイル名 | grep -v "条件B" | wc -l
私もこれに行きついた所なのですがgrepコマンドだけで書く方法ってあるでしょうか?
拘ってるわけではないんですが grep -c で件数が出せるならどうにか方法があるんじゃないかと思いまして^^;

grep -c ファイル名(grep 条件A -v 条件B)
こんな書き方が無いのはわかってるんですがイメージはこのような感じです。

お礼日時:2012/11/19 14:56

なぜなのか, 理由は理解できていますか?

この回答への補足

一つ目のgrepで件数出しているのにそれにgrep -vで除外しようとしてしまうからだと認識しています。

>$ grep "条件A" ファイル名 | grep -v "条件B" | wc -l
で求めたい結果が出てくるのはわかったんですがgrepとwcコマンドを組み合わせるのではなくgrepコマンドだけでそもそも出来ないのだろうかと思いまして・・

$ grep "条件A" ファイル名 | grep -v "条件B"
をgrepの-cで件数出す方法ってないのでしょうか?

補足日時:2012/11/19 14:51
    • good
    • 0
この回答へのお礼

条件B側に-cをつけることで実現できることがわかりました!
ありがとうございました♪

お礼日時:2012/11/19 19:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!