2017-10-14 37 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

相關問題