이 주제에 대한 기존 스레드를 찾으려고 노력했고 몇 가지를 찾았지만 제가 찾고 있는 내용이 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 파일로 내보내고 싶습니다. 도움이 필요하세요?
답변1
sed -e '/\(.\).*\1/d' yourfile > youroutputfile
답변2
그렙을 사용할 수 있습니다
grep -vE "(.).*\1" input.txt > output.txt
예를 들어
% cat input.txt
KKIUB
SDCVG
KJUTT
NGTHH
WWLEE
XGHTP
NJFRT
PPSFF
ZZZLP
XDRFX
JJJJJ
KIEYW
% grep -vE "(.).*\1" input.txt > output.txt
% cat output.txt
SDCVG
XGHTP
NJFRT
KIEYW