grep在从文件读取输入时不起作用

时间:2015-04-17 10:50:09

标签: bash grep

我正在尝试使用grep在目录中找到密钥。 密钥数量巨大,因此我将它们存储在keys.txt文件中并一次读取一行。 将搜索final_modules目录。

当我们从终端运行一个密钥时,就会找到它。

$cd ~/Unsed_key_task/final_modules
grep -r <KEY>

但是当在下面的文件中迭代相同的密钥时,找不到它。

keys.txt>>
  key1
  key2
  key3
  ...
  ... 

和  greps.sh&gt;&gt;

   FILENAME=$1     
    while read LINE
            do
                    cd ~/Unsed_key_task/final_modules
                    let count++
                    echo $LINE
                    pwd
                    grep -r $LINE

                    if [ $? -eq 0 ]
                    then
                            echo " found"
                    else
                            #echo "not found"
                            echo $count
                            echo  $LINE
                            echo "     [ Not found ]"
                    fi
   done < $FILENAME      

当我打印$LINE时,它打印正确,pwd打印正确的目录。 我的代码只找到一个键并退出。

1 个答案:

答案 0 :(得分:3)

grep可以从文件中读取模式。您不需要自己迭代$FILENAME。您想要实现的目标可以通过以下简单命令完成:

grep -f "$FILENAME" -r