【发布时间】:2014-09-10 18:32:49
【问题描述】:
我有一个脚本,我在 Linux 中使用得非常好,但现在我已经切换到 Mac,脚本仍然可以运行,但行为略有不同。
这是一个用于统计学生出席部门活动的脚本。我们使用便携式条形码扫描仪扫描他们的 ID,然后将所有扫描结果保存在每个日期的一个 csv 文件中。
我过去使用grep -m1 $ID csvfolder/* | wc -l 来计算他们的 ID 显示在多少个文件中。-m1 是必要的,以确保他们不会因为在同一事件中重复扫描而获得“额外信用” .
但是,当我在 Mac 中使用相同的命令时,它会在第一个文件中找到第一个匹配项时退出 grep。所以如果学生出现在 4 个文件中,wc -l 仍然返回 1
我如何(不安装 GNU 版本)模拟此功能?
【问题讨论】:
-
grep -m1在 Mac 上在第一个匹配的文件中的第一个匹配之后停止,而不是在每个匹配的文件中的第一个匹配处停止。这是标准避免的那种问题——-m不是一个标准化的选项。