awk -F'[ |]' '/EpoServerList/{print $2"\n"$5}' file
10.0.25.15
10.0.25.20
Я не уверен, что понимаю проблему. Вы могли использовать readline.clear_history и readline.add_history для установки completable строк, которые Вы хотите, затем управляете-r для поиска невыполнения обещания в истории (так же, как если бы Вы были при приглашении оболочки). Например:
#!/usr/bin/env python
import readline
readline.clear_history()
readline.add_history('foo')
readline.add_history('bar')
while 1:
print raw_input('> ')
С другой стороны, Вы могли записать свою собственную completer версию и связать соответствующий ключ к нему. Это кэширование использования версии в случае, если Ваш список соответствия огромен:
#!/usr/bin/env python
import readline
values = ['Paul Eden <paul@domain.com>',
'Eden Jones <ejones@domain.com>',
'Somebody Else <somebody@domain.com>']
completions = {}
def completer(text, state):
try:
matches = completions[text]
except KeyError:
matches = [value for value in values
if text.upper() in value.upper()]
completions[text] = matches
try:
return matches[state]
except IndexError:
return None
readline.set_completer(completer)
readline.parse_and_bind('tab: menu-complete')
while 1:
a = raw_input('> ')
print 'said:', a