egrep不使用扩展表达式

egrep不使用扩展表达式,grep,Grep,我有下面的代码 read searchTitle read searchAuthor egrep -iq "^$searchTitle$|^$searchAuthor$" cutText.txt 此代码应该可以从cutText.txt中找到$searchTitle或$searchAuthor(精确匹配)。用户可以将$searchTitle或$searchAuthor留空 例如,用户可以将$searchTitle保留为空白,并以$searchTitle的形式键入“obiwan”,输出应如图所示

我有下面的代码

read searchTitle
read searchAuthor

egrep -iq "^$searchTitle$|^$searchAuthor$" cutText.txt
此代码应该可以从cutText.txt中找到
$searchTitle
$searchAuthor
(精确匹配)。用户可以将
$searchTitle
$searchAuthor
留空

例如,用户可以将
$searchTitle
保留为空白,并以
$searchTitle
的形式键入“obiwan”,输出应如图所示:

Star Wars 1:obiwan
Star Wars 2:obiwan
Star Wars 3:obiwan
我的cutText.txt内容如下所示

mao:gou
MARY IS A LITTLE LAMB:lol
Star Wars 1:obiwan
Star Wars 2:obiwan
Star Wars 3:obiwan

非常感谢您的帮助!(:

您试图做的是:

grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt
man grep.白鹭已被弃用。请看:

$ searchTitle='star wars 1'; grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt; echo "$?"
0
$ searchTitle='star wars'; grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt; echo "$?"
1
$ searchTitle='obiwan'; grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt; echo "$?"
1
$ searchAuthor='obiwan'; grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt; echo "$?"
0
$ searchAuthor='obi'; grep -E -iq "^$searchTitle:|:$searchAuthor$" cutText.txt; echo "$?"
1

cutText.txt
中没有一行是准确的
obiwan
。哦,不……谢谢你指出。我没有意识到:是坚持使用
obiwan
。我会先尝试使用
cut
。下午好,从新加坡到这里。我真不敢相信解决方案这么简单,但我花了这么多时间e找出错误并过度思考。在学习bash编程的过程中,你帮了我很大的忙。我发现整个正则表达式语法都非常混乱,我无法理解如何在网上花了无数个小时研究并弄糊涂,我只能grep
标题
作者
我自己。你对另一个问题的评论也很有帮助。我真诚地感谢你在学习过程中帮助他人的心。