如何使用 grep 查找以“a”开头并以“c”结尾的行?

如何使用 grep 查找以“a”开头并以“c”结尾的行?

我有一个名为 的文件newfile。该文件的内容是:

abc
xyz
abc

现在我想查找以 开头a和以 结尾的行c。我输入以下命令,但结果与我预期的不一样:

grep -E   '^ac$' newfile

这个命令的问题是,当我使用^ac$该命令时,它会将其解释为以 开头ac而不是以 开头a

答案1

这个命令的问题是,当我使用 ^ac$ 时,该命令将其解释为以“ac”开头,而不是以“a”开头。

不是。因为你使用了$,您正在搜索紧接着字符串结束的行ac,因此只有包含单个字符ac且没有其他字符的行才会匹配。

要允许这些字母之间出现任何字符,请使用正则表达式来表示任意数量的字符:(.* 或者,如果您只想允许一个字符,如abc示例中所示,请使用.不带量词喜欢*。)

顺便说一句,您可以简单地省略-E此正则表达式的选项,因为它不涉及这两个变体中不同的任何语法。

所以结果是:

grep '^a.*c$' newfile

相关内容