Я хочу использовать grep в python для поиска строки совпадения, аргумент для поиска будет передан парсером Argument.Пример:
#!/usr/bin/env python
import argparse,sys,re
parser = argparse.ArgumentParser()
parser.add_argument('-e', dest='ArgumentList', action='append', default= [], help='List of arguments to be searched on the lists.', required=True)
parser.add_argument('-o', dest='OutputFile', action='store', default="", help='Save the search result to a file.')
args = parser.parse_args()
А затем я создаю функцию для поиска параметра в файле.
def Grep():
try:
if args.OutputFile != "":
with open(args.OutputFile,"w") as Out:
for line in File:
OutputLine = re.findall(ARGS, line)
print ("[*]A match was found: " + OutputLine)
Out.write(print(OutputLine))
Out.close()
elif args.OutputFile == "":
for line in File:
OutputLine = re.findall(ARGS, line)
print ("[*]A match was found: " + OutputLine)
else:
print('[*]Error: An error ocurred. Check Ozint usage "Script.py -h" to more')
sys.exit(0)
Переменная File - это файл, который нужно открыть.Переменная ARGS теперь просто для заполнения поля.Потому что здесь проблема.
Параметры для поиска будут сохранены в списке.Пример:
script.py -e a -e b
args.Argumentlist = ['a', 'b']
, но я хочу найти более одного аргумента без повторного запуска функции Grep (), и я не знаю, как изменить функцию для поиска множества аргументов за один прогон (например,Grep).Я использую библиотеку RE, кстати.И я открыт для новой версии функции grep, если есть кто-то, кто работает лучше, чем «мой».