grep
手动报价:
-o, --only-matching
仅打印匹配行的匹配(非空)部分,每个这样的部分在单独的输出行上。
matched (non-empty) parts of a matching line
意味着非空行对吗?
更新
如果评论被删除,来自斯蒂芬的回答如下:
- 释义:“一行中的空字符串”而不是“匹配行的空部分”怎么样?– 拉合尔 10 小时前
- 我认为重要的标签是“匹配的部分”;“匹配的字符串”也可以,我不是问哪个更好的合适人选。——斯蒂芬·基特 59 分钟前
它实际上是指匹配行的非空匹配部分,而不是非空行。结果是输出只包含非空行,每行都包含一个非空匹配。
grep -o
每场比赛打印一行:但它不输出空匹配。许多正则表达式可以匹配空文本;例如:
输出一个空行,因为空行匹配。但是,添加
-o
结果根本没有输出:因为
-o
忽略空匹配。指定
-o
忽略空匹配意味着实现者不需要决定如何处理零长度匹配,否则在许多情况下会产生相当长(且无用)的输出。考虑这两个命令:
这不输出任何内容,因为它与行的开头匹配并且是空的,所以它不输出它。
这将输出匹配行的匹配(非空)部分,每个这样的部分都在单独的输出行上。