count number of lines in terminal output

后端 未结 4 1066
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-29 19:46

couldn\'t find this on SO. I ran the following command in the terminal:

>> grep -Rl \"curl\" ./

and this displays the list of files wher

相关标签:
4条回答
  • 2021-01-29 20:30

    Pipe the result to wc using the -l (line count) switch:

    grep -Rl "curl" ./ | wc -l
    
    0 讨论(0)
  • 2021-01-29 20:32

    Putting the comment of EaterOfCode here as an answer.

    grep itself also has the -c flag which just returns the count

    So the command and output could look like this.

    $ grep -Rl "curl" ./ -c
    24
    

    EDIT:

    Although this answer might be shorter and thus might seem better than the accepted answer (that is using wc). I do not agree with this anymore. I feel like remembering that you can count lines by piping to wc -l is much more useful as you can use it with other programs than grep as well.

    0 讨论(0)
  • 2021-01-29 20:34

    Piping to 'wc' could be better IF the last line ends with a newline (I know that in this case, it will)
    However, if the last line does not end with a newline 'wc -l' gives back a false result.

    For example:

    $ echo "asd" | wc -l
    

    Will return 1 and

    $ echo -n "asd" | wc -l
    

    Will return 0


    So what I often use is grep <anything> -c

    $ echo "asd" | grep "^.*$" -c
    1
    
    $ echo -n "asd" | grep "^.*$" -c
    1
    

    This is closer to reality than what wc -l will return.

    0 讨论(0)
  • 2021-01-29 20:37

    "abcd4yyyy" | grep 4 -c gives the count as 1

    0 讨论(0)
提交回复
热议问题