使用不同正则表达式的 grep -c 与 bc 的管道差异

使用不同正则表达式的 grep -c 与 bc 的管道差异

我需要查找文件中不包含某些字母集的单词数(每行 1 个单词)。为此,我想取grep -c '.' <file>和的差异grep -c '<other_pattern>' <file>。我尝试使用以下命令通过管道传输到 bc echo "(grep -c '.' <file>) - (grep -c '<other_pattern>' <file>)" | bc。结果只是说语法错误。我希望有人能够了解 bc 接受 grep 调用结果所需的语法。我也需要在一个命令中完成此操作。

提前致谢。

答案1

您只是缺少两个美元符号来启用命令替换:

echo $(grep -c '.' <file>) - $(grep -c '<other_pattern>' <file>) | bc

我还删除了引号,因为它们并不是真正必要的。

相关内容