2

Каждую неделю или около того мне нужно загружать файл с миллионами строк и запускать на нем greps. Некоторые greps положительны, некоторые отрицательны (флаг "-v"). Некоторые из них grep, а некоторые egrep.

Сегодня я делаю это вручную - запускаю grep, сохраняю результаты в файл, затем запускаю другой grep для этого файла и сохраняю в file2, затем в file3 и т.д.

Есть ли какой-нибудь инструмент, который может облегчить мою жизнь, где я могу легко манипулировать списком greps, egreps, который инструмент будет рассчитывать и показывать результаты в реальном времени? Инструмент должен кэшировать результаты предыдущих greps, чтобы избежать их повторного запуска каждый раз.

1 ответ1

2

Я не совсем уверен, что вы имеете в виду под "показать результаты вживую" (но см. Конец моего ответа для идеи), но в целом я бы использовал make для такого рода задач. Например, учитывая файл srcfile.txt, в котором я собираюсь запустить несколько greps, я бы поместил greps в make-файл примерно так:

all: e.out b.out zy.out

single: e.out b.out

e.out: srcfile.txt
    grep e srcfile.txt >e.out

b.out: srcfile.txt
    grep b srcfile.txt >b.out

zy.out: srcfile.txt
    grep zy srcfile.txt >zy.out

... Затем я могу запустить все greps, необходимые для обновления выходных файлов с

> make

... Я могу запустить все greps, которые ищут отдельные буквы с

> make single

... и т. д. В течение нескольких недель в вашей ситуации, я думаю, я бы быстро собрал набор правил make, которые охватывали все (или почти все) случаи, в которых я был заинтересован.

Возможно, вам удастся сэкономить больше времени и усилий, поместив команды для загрузки файла с миллионами строк в make-файл.

Если выбор одной или нескольких целей с помощью команды make не обеспечивает достаточной гибкости, вы можете использовать условные выражения в файле make на основе переменных, которые вы задали при запуске make, например, см. Учебное руководство по GNU makefile по условным файлам и эту статью о передаче переменных из командной строки make

Чтобы показать результаты опроса, как это происходит, я склонен использовать хвост или меньше, как рекомендовано здесь. Сложность состоит в том, что любой метод показывает только один файл за раз. Мне нужно было бы узнать больше о вашей потребности в "живом" просмотре, чтобы узнать, удовлетворительно ли это или может потребоваться другое решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .