Se você quiser realmente rápido (O (1) rápido) você pode construir um conjunto de hash para analisar. Não consegui encontrar uma implementação que me permitisse armazenar um conjunto de hash pré-compilado em um arquivo e sondá-lo sem ter que ler o arquivo inteiro na memória, portanto Eu rolei meu próprio .
Crie o conjunto de hash ( -b
/ --build
):
./hashset.py --build string-list.txt strings.pyhashset
Teste o conjunto de hash ( -p
/ --probe
):
./hashset.py --probe strings.pyhashset \
'Is this string in my string list?' 'What about this one?'
… ou com string para procurar na entrada padrão:
printf '%s\n' 'Is this string in my string list?' 'What about this one?' |
./hashset.py --probe strings.pyhashset
Você pode silenciar a saída de --probe
com a opção -q
/ --quiet
se estiver interessado apenas no status de saída:
if ./hashset.py --quiet --probe strings.pyhashset ...; then
echo 'Found'
else
echo 'Not found'
fi
Para mais opções, consulte a descrição de uso acessível por meio da opção -h
/ --help
ou o arquivo README
acompanhante.