2017-10-14 56 views
0

我试图排除只有一个唯一字符的字(例如iiii,AAA)。单词将通过txt文件输入。我认为它可以用REGEX完成,但是我不知道REGEX非常好,我无法弄清楚。排除只有一个唯一字符的字BASH

+3

请添加样品输入和该输入您的问题样品所需输出。 – Cyrus

+0

这是一个与回文有关的作业问题?其他人已经在其他地方有完整的解决方案。 –

+0

......好吧 - 别人问,得到了他们认为正在工作的解决方案,并删除了他们的问题,而不是接受这个答案。 @LeviBensley,* ahem * - 请注意,服务条款为网站提供了显示贡献内容的不可撤销许可。除了这些对知识库贡献不大的原因,删除问题可能会被颠倒过来。 (上下文的用户w /权限查看已删除的问题:https://stackoverflow.com/questions/46744958/bash-finding-palindromes-in-a-txt-file) –

回答

1

您可以提取工作的第一个字母,然后使用它构造匹配1个或多个该字母的正则表达式。

while IFS= read -r word; do 
    [[ $word =~ ^"${word:0:1}"+$ ]] && continue 
    ... 
done <<EOF 
word1 
word2 
word3 
... 
EOF 
+1

'.abc'会匹配,因为'.'元字符 –

+0

引用扩展应该可以解决这个问题。 – chepner

0

GNU的grep支持PCRE:

grep -P -v '^(.)\1*$' 
  • -P PCRE
  • -v反相匹配:过滤器匹配的行

  • ^开始线锚的,空字符串

  • .匹配任何字符
  • \1是背参照第一组()
  • $之间开始线锚的,空字符串
+0

一个独特的人物。我想'I'或'A'是合格的。 – sln

相关问题