使用grep查找文本文件中的字符串时遇到问题

问题描述:

用户输入电子邮件。我使用grep来检查电子邮件是否已存在于特定文件中。使用grep查找文本文件中的字符串时遇到问题

下面是我在与

$word = [user input (email) ] 
legit = [boolean that is used for something else. No problem with that here] 

我新的麻烦代码的一部分。请帮助我。

if [[ grep -f "$word" "/root/Desktop/Dan/Logs/member-name-file" "$variable.txt" ]] 
      then 
       echo "Email already exists on requested List**" 
       legit=false 
      else 
       echo "Email added onto list**" 
       legit=true 
      fi 
+0

您正在尝试读取模式从用户的输入命名的文件相匹配。你想'-e'而不是'-f'。另外,什么是“$变量”? – Khaur

+0

$变量是我的“变量”TIMESTAMP – Dan

+0

是时间戳文件的一部分吗?如果是这样的话,它应该是'“.../member-name-file $ variable.txt”,否则grep会将'.../member-name-file“和'$ variable.txt'视为不同的文件。 – Khaur

相反的:

if [[ grep -f "$word" "/root/Desktop/Dan/Logs/member-name-file" "$variable.txt" ]] 

你可以这样做:

if grep -q "$word" "/root/Desktop/Dan/Logs/member-name-file"