Назад | Перейти на главную страницу

использование строк (команда) для поиска только английских слов

Вкратце, моя проблема в том, что мне нужен список английских слов, которые выводятся, когда я запускаю «строки» в двоичном файле. В настоящее время файл, который я запускаю, сбрасывает много мусора на экран, и меня интересуют только слова, которые являются, в общем, словами.

Покопавшись здесь, я вижу, что grep -f сопровождается Файл словаря Linux буду делать то, что хочу, но это медленный.

Есть ли более быстрая альтернатива, или действительно так сложно сопоставить английские слова?

Сопоставить несложно, проблема в том, что вы сопоставляете возможно длинный список с действительно длинным. Это занимает много времени просто из-за огромного количества сравнений, которые необходимо провести.

Grep может использовать более быстрый алгоритм сопоставления, если знает, что он соответствует только фиксированным строкам (по сравнению с регулярными выражениями). Вы включаете это поведение, предоставляя -F аргумент, или используя fgrep команда.

Полная команда:

strings fileToScan | grep -F -f /usr/share/dict/words

предполагая файл словаря присутствует в / usr / share / dict / words