我有一个包含以下内容的文件,
TESTING
TSET24D
DSWEDFBG
WTSETO
MSDWEHLKGY
并希望 grep 只有 6 和 8 个字符长的字符串。
我试过下面的,
[root@server ~]# cat listfile | grep -o -w -E '^[[:alnum:]]{6,8}'
TESTING
TSET24D
DSWEDFBG
WTSETO
[root@server ~]#
这似乎在某些服务器上有效,并且它还会返回 6-8 之间的字符串。
任何想法请..
最佳答案
在您的正则表达式中,{6,8}
查找 6 到 8 次之间的重复(因此包括 7 次)。您需要使用竖线(在正则表达式中为 OR)将搜索拆分为 6 或 8 次。
$ grep -o -w -E '^[[:alnum:]]{6}|^[[:alnum:]]{8}' listfile
DSWEDFBG
WTSETO
关于Linux grep 只获取n,m个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43496176/