Как я могу отфильтровать список слов на основе нескольких символов в общих позициях? - PullRequest
0 голосов
/ 30 января 2019

У меня очень большой список слов.Как я могу использовать Unix, чтобы найти экземпляры нескольких слов, соответствующие определенным критериям разделения символов?Например, я хочу, чтобы Слова 1 и 2 имели одинаковые четвертый и седьмой символы, Слова 2 и 3 имели одинаковые четвертый и девятый символы, а Слова 3 и 4 имели одинаковые второй, четвертый и девятый символы.

Пример:

aaadiigjlf
abcdefghij
aswdofflle
bbbbbbbbbb
bisofmlwpa
fsbdfopkld
gikfkwpspa
hogkellgis

может вернуть

abcdefghij
aaadiigjlf
fsbdfopkld
aswdofflle

Что-то вроде

grep '...d..g'  somefile

будет работать только для определенных символов, но мне нужно, чтобы оно работалодля любых общих персонажей в определенных позициях;Я не имею в виду конкретные символы (такие как «d» и «g», как указано в примере).Кроме того, я хотел бы, чтобы он мог возвращать слова, которые не соответствуют ВСЕМ критериям;например, в приведенном примере слова 1 и 4 разделяют четвертый символ, но не обязательно второй, седьмой и девятый.С программой, которую я запускаю в завершенном виде, я ожидаю, что она выдаст очень маленький список слов (вероятно, только десять) на основе девяти строгих критериев совместного использования символов.

РЕДАКТИРОВАТЬ: из-за некоторыхпутаница на других форумах, я добавил это уточнение.Вот проблема именно в том, как мне это дали.

Мне дали список слов и сказали, что в списке есть десять десятибуквенных слов, которые могут вписаться в сетку следующим образом:

-112--3---
---2--3-4-
-5-2----4-
-5-2--6-4-
75-2--6---
75---8----
7----8----
79---8----
-9--0-----
-9--0---xx

Каждое слово читается поперек.Каждый пробел с одинаковыми цифрами (и x), занимающими его (все 1, все 2 и т. Д.), Является одной и той же буквой (разные цифры потенциально могут быть одной и той же буквой, хотя и не обязательно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...