使用 Unix 在文件中查找模式

Finding patterns in files with Unix

如何在 UNIX 文件中搜索以 e 或 y 开头且一行中正好包含四个字符的行?

第一部分我试过了

ls /usr/cont | grep ^[ey] 

我不确定应该如何让它识别两个不同的字母。

另一部分我只知道如何搜索一个确切的字符。

第二部分我使用了:

ls /usr/cont | grep ^.$

使用此模式:

grep "^[ey]...$"

或者,使用范围语法:

grep "^[ey].\{3\}$"

举个例子:

gps.log 和 pps.log

我已经尝试了以下并且有效。

$ ls -ldtr [gp][a-z][a-z].*

如果您的文件中也有驼峰字母或数字字符,您也可以在字符范围内添加 A-Z0-9。

对于文件名:

ls /usr/cont/[ey]???

文件名必须以ey开头,总共4个字符(当然加上路径)。

对于文件中的行:

grep '^[ey]...$'

该行必须以 ey 开头,总共由 4 个字符组成。

虽然我没有完全理解你的问题,也没有足够的声誉点来发表评论。如果你想查找文件名以字母 "e" 或 "y" 开头且恰好有四个字符的文件,请尝试 "find"、

find /path_to_search_for -name "????"  \( -name "y*" -o -name "e*" \)