使用 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]???
文件名必须以e
或y
开头,总共4个字符(当然加上路径)。
对于文件中的行:
grep '^[ey]...$'
该行必须以 e
或 y
开头,总共由 4 个字符组成。
虽然我没有完全理解你的问题,也没有足够的声誉点来发表评论。如果你想查找文件名以字母 "e" 或 "y" 开头且恰好有四个字符的文件,请尝试 "find"、
find /path_to_search_for -name "????" \( -name "y*" -o -name "e*" \)
如何在 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]???
文件名必须以e
或y
开头,总共4个字符(当然加上路径)。
对于文件中的行:
grep '^[ey]...$'
该行必须以 e
或 y
开头,总共由 4 个字符组成。
虽然我没有完全理解你的问题,也没有足够的声誉点来发表评论。如果你想查找文件名以字母 "e" 或 "y" 开头且恰好有四个字符的文件,请尝试 "find"、
find /path_to_search_for -name "????" \( -name "y*" -o -name "e*" \)