Regex egrep如何搜索在行首和行中都有条件的单词?

Regex egrep如何搜索在行首和行中都有条件的单词?,regex,grep,Regex,Grep,假设我有一个名为example.txt的文本文件,我想查找单词“cat”,但我在搜索结果中得到了单词“scat”,而我不想在输出中找到它。所以我会这么做 egrep[^s]cat example.txt 在没有“scat”的情况下获取所有“cat”事件。但是,当我执行此操作时,所有出现在行首的cat都会出现。我认为这与插入符号的使用有关,但我不确定是否有正确的命令来生成我要查找的输出 egrep cat example.txt | egrep -v scat 或者,检查行的开头是否为s: eg

假设我有一个名为example.txt的文本文件,我想查找单词“cat”,但我在搜索结果中得到了单词“scat”,而我不想在输出中找到它。所以我会这么做

egrep[^s]cat example.txt

在没有“scat”的情况下获取所有“cat”事件。但是,当我执行此操作时,所有出现在行首的cat都会出现。我认为这与插入符号的使用有关,但我不确定是否有正确的命令来生成我要查找的输出

egrep cat example.txt | egrep -v scat
或者,检查行的开头是否为
s

egrep '(^|[^s])cat' example.txt

这可能会有帮助:
grep'\bcat\b'example.txt
或@Cyrus指出的那样指定单词边界
'\bcat\b'