grep 正则表达式中的 ^# 是什么意思?

grep 正则表达式中的 ^# 是什么意思?

我试图理解这个grep命令:

#CPU physical: $(lscpu -b -p=Socket | grep -v '^#' | sort -u | wc -l)

这似乎很好理解,我唯一无法得到的是^散列()之前的控制( #)?

答案1

您可以将该^字符视为“行的开头”的意思,因此^#匹配# 在一行的开头- 换句话说,一行是注释。

通过使用-v选项grep,您可以选择不匹配的行。

实际上,在这种情况下,该命令会过滤掉注释。

这里有关 Bash 中正则表达式的更多信息。

答案2

您应该尝试在不使用 grep -v 命令的情况下执行该命令并查看差异。

grep -v "^#"- 从 lscpu 输出中删除所有注释。

反转匹配的意义,选择不匹配的行,下面有一个示例,说明如何在不过滤输出的情况下获得相同的答案:

 egrep "physical id" /proc/cpuinfo|sort -u|wc -l

相关内容