使用Unix查找文件中的模式

时间:2015-01-21 05:44:42

标签: regex bash unix grep

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

第一部分我尝试了

ls /usr/cont | grep ^[ey] 

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

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

对于我使用的第二部分:

ls /usr/cont | grep ^.$

4 个答案:

答案 0 :(得分:1)

使用此模式:

grep "^[ey]...$"

或者,使用范围语法:

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

答案 1 :(得分:1)

对于文件名:

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

文件名必须以ey开头,共包含4个字符(当然还有路径)。

对于文件中的行:

grep '^[ey]...$'

该行必须以ey开头,共包含4个字符。

答案 2 :(得分:0)

举个例子:

gps.log和pps.log

我尝试了以下内容并且有效。

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

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

答案 3 :(得分:0)

虽然我没有完全回答您的问题,但没有足够的声誉可以评论。如果你想找到带有文件名的文件,或者以字母“e”或“y”开头,并且只有四个字符,那么试试“find”,

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