I가 사용하고 tre-agrep
(맨) 의 일 구현 agrep
(맨)을 근사 패턴 매칭을 수행하는. 이 유틸리티는 Levenshtein distance를 기준으로 일치하는 항목을 검색 하며 사용자는 대체, 삽입 또는 삭제 편집에 적용되는 페널티를 구성 할 수 있습니다.
그러나 쿼리 길이에 따라 다르게 가중치를 적용하고 싶습니다. 즉, 쿼리 시작 (왼쪽 끝)에서 오른쪽보다 삭제에 대한 가중치가 낮습니다. man
이 유틸리티 의 페이지는 그러한 수준의 제어가 가능하다는 것을 나타내지 않습니다.
불일치 페널티에 대한보다 세밀한 제어가 가능한 다른 명령 행 도구가 있습니까?
5
AFAIK, agrep만이 유일합니다. 유닉스 세계에서의 상대적인 모호함 (너무 나쁘다)을 알면 놀랍습니다. 이론적으로 소스 코드에서 이러한 가중치를 조정할 수 있지만 그것이 실용적이든 아니든 모르겠습니다. 도구의 작성자 또는 도구의 기초가되는 원본 문서에 문의 해 보셨습니까? 당신은 마음에, 그들은 아마 지금
—
구세대입니다
@Otheus 구세대는 여전히 코드를 작성할 수 있습니다 ;-)
—
Kusalananda
Python 또는 Awk에서 표현식으로 정의 된 삽입 / 삭제 / 대체 비용으로 Levenshtein-matching 유틸리티를 작성하는 것은 어렵지 않습니다. 지루한 부분은 실제로 가능한 모든 명령 줄 옵션입니다. OP가 전형적인 명령 줄을 보여주고
—
명목 동물
agrep
실제로 필요한 옵션을 알려주는 경우 무언가를 채울 수 있습니다. 두 줄의 레 벤슈 테인 거리를 계산하는 것은 정말 쉽습니다. GNU awk 호출을 감싸는 쉘 스크립트를 제안합니다.