2015-05-05 2 views
1

В пакетном файле, я могу отправить результаты Grep в файл, например так:Назначение Grep строки результата переменной в пакетном файле Windows,

grep -o -P -f search_text.txt text_file.txt >outputfile.txt 

Но я не хочу результат, чтобы перейти к файл. Я хочу, чтобы результат был сохранен в переменной, которую я могу использовать позже в пакетном файле. Я хочу это сделать:

grep -o -P -f search_text.txt text_file.txt >my_variable 

Но, конечно, это не сработает. Как я могу получить результаты grep, назначенные переменной?

+0

Используйте цикл 'for/f' для захвата результата команды переменной. 'help for' из консольного окна для получения дополнительной информации. В принципе, 'for/f 'delims =" %% I in (' grep -Pof needle.txt haystack.txt ') действительно устанавливает «variable = %% I» ' – rojo

+0

Спасибо. Это работает. – Jugggler

ответ

0

Grep -o -P -f search_text.txt text_file.txt> OutputFile.txt

затем сделать

вар = $ (глава -n 1 OutputFile.txt) (читай первую строку)

и у вас есть результат в вар

+0

Да, это сработает, но оказалось, что он победил причину, по которой я хотел, чтобы результаты grep попадали в переменную в первую очередь. Я пытаюсь уменьшить ввод/вывод файлов, grepping всех моих результатов, сохранение результатов в переменных и только запись в файл один раз в конце. – Jugggler

0

tmpStr = grep -o -P -f search_text.txt text_file.txt

, если он не будет работать, попробуйте:

tmpStr = $ (grep -o -P -f search_text.txt text_file.txt)

Смежные вопросы