【发布时间】:2016-06-15 00:04:57
【问题描述】:
我正在尝试掌握如何使用 egrep 来计算文件中某些内容的出现次数。
如果我有这样的文件,名为myfile:
commas and stuff
more things
然后我可以通过以下方式计算第一个中的o数:
head myfile | egrep -c "o" myfile
由于某种原因,我无法使用管道执行此操作。如果我有这样的文件,名为mypipes:
| my | pipes |
我试过这个:
head mypipes | egrep -c "|" mypipes
这给了我一个错误empty sub(expression),所以我尝试了以下方法:
head mypipes | egrep -c "\|" mypipes
这给了我一个值“1”,这显然是错误的。
如何正确执行此操作?一个完整的解释而不是一次性的解决方案将是惊人的。谢谢。
【问题讨论】:
-
你想做什么?
head毫无意义。 -
请注意,
egrep在您在其命令行上指定文件名时会忽略其标准输入。 Thieegrep -c o myfile导致egrep直接读取myfile并忽略其标准输入。您可以通过指定仅-的“文件名”或使用/dev/stdin使其读取标准输入。因此:egrep -c o myfile -或grep -Ec o myfile /dev/stdin。在没有指定文件的情况下,它读取标准输入——这是 Unix 命令的“过滤器”习语。