另一个我似乎无法解决的问题:所有希腊字母都有 5 个唯一的字母(意味着每个字母只出现一次)。
我的解决方案:
egrep '(.)([^/1])([^/1/2])([^/1/2/3])([^/1/2/3/4])' greek.txt
所以我想我想说的是:
匹配任何第一个字符
每个连续字符不能是前面的任何模式
但结果是:
alpha
gamma
delta
epsilon
theta
kappa
lambda
omicron
sigma
upsilon
omega
Alpha、Gamma,它们的特征并不独特。关于我做错了什么有任何提示或提示吗?
答案1
- 使用一个 grep 过滤所有长度为 != 5 的行。
- 使用第二个 grep 过滤所有重复字符的单词。
egrep '^.{5}$' greek.txt | egrep -v '^.*(.).*\1.*$'
感谢@StephaneChazelas 在评论中指出优化:
grep -x '.\{5\}' | grep -v '\(.\).*\1'
答案2
我认为你走在正确的轨道上,但你的斜杠走向了错误的方向,成为反向引用。使用\1
不/1
!