bash grep数组和输出数组分开

时间:2013-06-20 09:05:50

标签: bash grep

我正在尝试从文件中的给定数组中获取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"

1 个答案:

答案 0 :(得分: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

您可能不需要将-E传递给grep