如果grep语句永远不会返回true,则总是返回'没有这样的文件或目录'

时间:2015-08-16 20:39:04

标签: bash grep

我的任务是编写一个计算汽车列表中Red Ford Fiestas数量的方法,然后将该数字输出到.txt文件,特别是不使用grep中的-c选项

numberCars=0
while read car
do
    echo $car
    if grep -E Ford\:Fiesta.*Red $car; then
        echo "-------DONE------"
        (($numberCars++))
    fi
done < $userInput
echo $numberCars > output/Fiesta_Red.txt

第一个echo $car有效,所以我知道while循环正常工作。但是,每个if grep都会返回汽车的详细信息,然后是&#34; No such file or directory&#34;。我已经测试过,每个if都返回false,无论我搜索的模式是否存在

作为参考,这是carslist.txt格式化的示例:

Peugeot:206:2000:Black:1
Ford:Fiesta:2000:Red:2

1 个答案:

答案 0 :(得分:1)

测试模式的可能解决方案

[[ $car =~ Ford\:Fiesta.*Red ]] && echo "-------DONE------" && (($numberCars++))