Shell script grep command -c (count) -- 命令行顺序重要吗?
Shell script grep command -c (count) -- does command-line ordering matter?
只是一个关于疑问的快速问题。这两者有什么区别:
grep "$genre" "$i" | grep "$type" -c
和
grep "$genre" "$i" | grep -c "$type"
他们可能做同样的事情吗?
从man grep
可以看出,-c
开关属于so-called“通用输出控制”。这些开关可以放在 grep ...
命令中的不同位置,这对一般结果没有影响,所以实际上,你提到的两行都是相等的。
grep "$type" -c
的 POSIX standard-mandated 行为,假设 $type
不扩展为以破折号开头的字符串,是将 -c
作为文件名。
只有 grep
的非标准版本(例如由 GNU 项目构建并在 Linux 系统上常见的版本)会将 -c
视为启用“计数”行为的选项当它不在第一个位置参数之前时。
将脚本编写为需要非标准工具是不好的做法,除非它们从这些工具中获得一些具体的好处。使用 grep -c "$type"
.
只是一个关于疑问的快速问题。这两者有什么区别:
grep "$genre" "$i" | grep "$type" -c
和
grep "$genre" "$i" | grep -c "$type"
他们可能做同样的事情吗?
从man grep
可以看出,-c
开关属于so-called“通用输出控制”。这些开关可以放在 grep ...
命令中的不同位置,这对一般结果没有影响,所以实际上,你提到的两行都是相等的。
grep "$type" -c
的 POSIX standard-mandated 行为,假设 $type
不扩展为以破折号开头的字符串,是将 -c
作为文件名。
只有 grep
的非标准版本(例如由 GNU 项目构建并在 Linux 系统上常见的版本)会将 -c
视为启用“计数”行为的选项当它不在第一个位置参数之前时。
将脚本编写为需要非标准工具是不好的做法,除非它们从这些工具中获得一些具体的好处。使用 grep -c "$type"
.