1

我正在尝试从文件中的给定数组中 grep。我需要数组单元的计数,我希望得到每个单元的输出计数,例如:U10 => 2等,但是当我在数组中添加多个单元时,似乎 grep 求和并输出单个组合计数。

到目前为止,这是我的代码,任何关于在哪里搜索或从哪里开始的帮助或指导都会有所帮助。

 #!/bin/bash
 echo "Enter file to check:"
 read file
 args=("U10" "U12" "U14")
 pat=$(echo ${args[@]}|tr " " "|")
 grep detected /public/files/$file | grep -Ec "$pat"
4

1 回答 1

2

您正在指定一个正则表达式 ( U10|U12|U14)grep并寻找计数。这就是为什么您观察到您正在获得单个匹配项的总和。

一次指定一种模式:

#!/bin/bash
echo "Enter file to check:"
read file
args=("U10" "U12" "U14")
for pat in ${args[@]}; do
  echo -ne "${pat}\t" ; grep detected /public/files/$file | grep -c "$pat"
done

您可能不需要传递-Egrep.

于 2013-06-20T09:23:19.027 回答