grep “^[^a-z]” foo
和之间有什么区别吗grep –v “^[a-z]” foo
?
它显示相同的输出,而第一个命令显示一些突出显示的字符。这是唯一的区别吗?
答案1
首先我需要指出您的命令已粘贴到文字处理器中。请注意,命令中的引号是“弯引号”并且无效。
除此之外,命令几乎是相同的。
grep "^[^a-z]" foo
[^a-z]
是一个正则表达式“匹配单个字符不存在在列表中”。所以这个命令将匹配文件中的任何foo
行才不是以小写字母开头。
grep -v "^[a-z]" foo
[a-z]
是一个正则表达式“匹配单个字符展示在列表中”,但-v
选项是“invert-match”(选定的行是那些不匹配任何指定模式的行。)。因此,这将找到文件中符合foo
以下条件的任何行:才不是以小写字母开头。 不同之处该命令还将匹配空行。