Linux

刪除所有包含重複字母的行

  • March 21, 2017

我試圖找到關於這個主題的現有主題,但我找到了一些東西,但這不是我正在尋找的 100%,而且我最近幾天的網際網路連接很糟糕,所以我需要退出搜尋並發布一個新主題。 .

所以我的問題是我有一個包含多行(超過 50000 行)的 .txt 文件,每行有 5 個字母字元串,如下所示:

KKIUB
SDCVG
KJUTT
NGTHH
WWLEE
XGHTP
NJFRT
PPSFF
ZZZLP
XDRFX
JJJJJ
KIEYW
...

我希望刪除文件中包含兩個(或更多)相同字母的所有行。重複的順序並不重要,因此必須刪除在一行中包含兩次字母的所有行。請注意,有時可能有 5 個相同的字母,有時 3 個相同的字母,有時只有 2 個相同的字母 + 彼此不接近,例如“GOHIG”。

KKIUB ---> delete
SDCVG ---> stays
KJUTT ---> delete
NGTHH ---> delete
WWLEE ---> delete
XGHTP ---> stays
NJFRT ---> stays
PPSFF ---> delete
ZZZLP ---> delete
XDRFX ---> delete
JJJJJ ---> delete
KIEYW ---> stays

我正在嘗試使用sed功能,但無法獲得良好的結果。我也想將它導出到另一個 .txt 文件中。有什麼幫助嗎?

sed -e '/\(.\).*\1/d' yourfile > youroutputfile

引用自:https://unix.stackexchange.com/questions/352927