为什么这些模式返回相同的结果?

  • 本文关键字:结果 返回 模式 grep
  • 更新时间 :
  • 英文 :


我看到这个问题:在bash中计算(非空白)代码行数

我明白这个模式是正确的。

grep -vc ^$ filename

为什么这个模式返回相同的结果?

grep -c '[^ ]' filename

'[^ ]'是什么把戏?

$ printf 'foo 123n  nxyzntn' > ip.txt
$ cat -T ip.txt
foo 123

xyz
^I
$ grep -vc '^$' ip.txt
4
$ grep -c '[^ ]' ip.txt
3
$ grep -c '[^[:blank:]]' ip.txt
2

grep -c '[^ ]'计算任何包含非空格字符的行。例如,foo 123将被计算在内,因为字母不是空格字符。因此,使用哪一个取决于只包含空格字符的行是否应该计数。

最新更新