我有 passwd 文件,每一行都是这样的:
abcdefg:x:2029:1040:Hasan abcdefg:/home/student/x0203/abcdefg:/bin/bash
ijklmnop:x:2029:1040:Bob ijklmnop:/home/student/x0203/ijklmnop:/bin/bash
man:x:2029:1040:Sponger man:/home/student/x0203/ijklmnop:/bin/bash
我想匹配所有在用户名中包含 7 个或更多字母的行,例如与上面我想匹配的行:
abcdefg:x:2029:1040:Hasan abcdefg:/home/student/x0203/abcdefg:/bin/bash
ijklmnop:x:2029:1040:Bob ijklmnop:/home/student/x0203/ijklmnop:/bin/bash
我写了以下内容:
egrep '.*(.)(.)(.)(.)(.)(.)(.).*[:].*[:].*[:].*[:].*\1\2\3\4\5\6\7.*[:].*[:].*' passdw
但这仅匹配具有 7 个字母用户名的用户
abcdefg:x:2029:1040:Hasan abcdefg:/home/student/x0203/abcdefg:/bin/bash
这是一个学校项目,我必须使用 grep 和正则表达式,所以 awk 不会这样做。我不要求我在这里做最多的整个 awnser,我只是不知道为什么它不工作。