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