【问题标题】:count is not matching with egrep command in unix korn shell计数与 unix korn shell 中的 egrep 命令不匹配
【发布时间】:2016-06-27 21:50:59
【问题描述】:

我正在尝试获取 unix korn shell 中的匹配数,但不工作,只返回 1。 我有一个值为“myfile-ddmmyy_HHMM”的变量,我正在做的是获取它的匹配项,但返回 1。

myfile="myfile-ddmmyy_HHMM"
echo $myfile | egrep -c "ddmmyy|HHMM"

应该返回 2。

有什么想法吗?

【问题讨论】:

  • 你只是在文件名中搜索
  • 是的,它只返回第一个匹配项。
  • 我要回显变量,因为我必须用时间戳替换“ddmmyy_HHMM”。
  • 你为什么会得到 2 个?只有一行输入,所以你最多只能得到 1 作为输出计数。如果你弄乱了 GNU(或 BSD)grep 扩展选项-o(只输出匹配的文本,每个匹配在自己的行上),那么你会得到 2 返回。请注意,Korn shell 的使用无关紧要——重要的是您使用的 grep 方言。

标签: shell unix count grep match


【解决方案1】:

grep 手册页说:

-c, --count
         Only a count of selected lines is written to standard output.

所以结果是预期的,因为它应该打印匹配的 lines 的数量(并且您有 一行,它意外地匹配了您的 egrep 模式)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2018-04-07
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多