grep - 为什么这些模式返回相同的结果?
问题描述
我看到了这个问题:count (non-blank) lines-of-code in bash
我理解这种模式是正确的。
grep -vc ^$ filename
为什么这种模式返回相同的结果?
grep -c '[^ ]' filename
什么是诡计'[^ ]'
?
解决方案
$ printf 'foo 123\n \nxyz\n\t\n' > 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
将被计算在内,因为字母不是空格字符。因此,使用哪一个取决于是否应计算仅包含空格字符的行。
推荐阅读
- javascript - 需要将 javascript 值传递为 html 格式的建议,以便我可以显示正确答案的评分屏幕,而不是“document.write”
- c++ - 为什么程序终止时在boost日志内崩溃
- ios - Swift:如何掩盖 UICollectionView 的背景,使其仅在可见单元格后面可见?
- php - 文件在laravel中上传pdf
- java - 如何使用 Java 严格实现给定的 UML?
- userscripts - 使用用户脚本删除元素
- apache-flink - 如何以批处理模式显示 TableEnvironment 的表格内容
- api - API中的应用程序编程是什么意思
- javascript - 按属性值对数组中的对象进行分组
- javascript - jQuery/Javascript 上的 HTML 按钮调用以显示对话框