我正在使用Linux的终端,并且我有一个单词列表,其中包含以下单词:
filers
filing
filler
filter
finance
funky
fun
finally
futuristic
fantasy
fabulous
fill
fine
我想做一个grep和一个正则表达式来匹配查找单词和前两个字母" fi"并且只显示该单词的总共6个字符。
我试过了:
cat wordlist | grep "^fi"
这显示以fi开头的单词。
然后我尝试了:
cat wordlist | grep -e "^fi{6}"
cat wordlist | grep -e "^fi{0..6}"
还有更多,但它没有带回任何结果。有人能指出我正确的方向吗?
答案 0 :(得分:4)
它的fi
以及另外四个字符:
grep '^fi....$'
或更短
grep '^fi.\{4\}$'
或
grep -E '^fi.{4}$'
$
匹配在行尾。
答案 1 :(得分:2)
试试这个:
grep -P "^fi.{4,}"
请注意,由于您已经拥有“fi”,因此您只需要至少4个字符。
.
表示任何字符,{4,}
将匹配该字符4次或更多次。
如果您像示例中那样写grep -e "^fi{6}"
,那么您尝试匹配以f
开头的字符串,后跟6 i
s。
答案 2 :(得分:2)
<强>解决方案:强>
cat wordlist | grep -e "^fi.{4}$"
您的尝试:
cat wordlist | grep -e "^fi{6}"
这意味着f和i六次,上面添加的点表示任何字符,所以它是fi和任何字符4次。我还用$来标记该行的结尾。