부정확 한 텍스트 검색


10

같은 어떤 유틸리티 거기에 grep심지어 uniq하지만 부정확 한 검색하거나 내가 직접 작성해야?

일치하는 90 % (숫자가 다를 수 있음) 또는 이와 유사한 것을 볼 것입니다. 예를 들어 여러 문자열이있는 파일이 있습니다.

abc123
abd123
abc223
qwe938

이 경우 이러한 유틸리티는 처음 세 문자열을 반환하거나 유사하다고 말해야합니다. 물론 내가 가진 경우 같은 파일의 내용의 패턴을 모르는 grepuniq.


이것은 매우 구체적인 데이터 세트입니다. 예를 들어 Mary는 Marie와 같습니까, ABC는 BCD와 같습니까? 실제 데이터 예를 제시 할 수 있습니까?
EightBitTony

답변:


19

agrep 또는 tre-grep은 원하는 것을 수행합니다. 그들은 "대략적인"정규식 일치 / grep입니다. 자세한 내용 은 Wikipedia 기사를 참조하십시오 .

% tre-agrep --help | head             (05-23 16:53)
Usage: tre-agrep [OPTION]... PATTERN [FILE]...
Searches for approximate matches of PATTERN in each FILE or standard input.
Example: `tre-agrep -2 optimize foo.txt' outputs all lines in file `foo.txt'     that
match "optimize" within two errors.  E.g. lines which contain "optimise",
"optmise", and "opitmize" all match.

Regexp selection and interpretation:
  -e, --regexp=PATTERN      use PATTERN as a regular expression
  -i, --ignore-case         ignore case distinctions
  -k, --literal             PATTERN is a literal string


% agrep  | head                       (05-23 16:53)
usage: agrep [-@#abcdehiklnoprstvwxyBDGIMSV] [-f patternfile] [-H dir] pattern [files]

summary of frequently used options:
(For a more detailed listing see 'man agrep'.)
-#: find matches with at most # errors
-c: output the number of matched records
-d: define record delimiter
-h: do not output file names
-i: case-insensitive search, e.g., 'a' = 'A'
-l: output the names of files that contain a match
-n: output record prefixed by record number
-v: output those records that have no matches
-w: pattern has to match as a word, e.g., 'win' will not match 'wind'
-B: best match mode. find the closest matches to the pattern
-G: output the files that contain a match
-H 'dir': the cast-dictionary is located in directory 'dir'

바로 내가 찾는 것입니다. 감사합니다.
러쉬
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.