Индикатор выполнения Grep с помощью объема плазмы (передают средство просмотра по каналу),

Мое предположение - то, что Вы входите в систему один из форматов "Текстового файла". Они не могут использоваться, если Вы хотите, чтобы динамическое действие (новые процессы, и т.д.) было получено.

Вместо этого используйте формат "Двоичного файла" для собирания данных. Это позволит perfmon получать любое динамическое действие для счетчиков, которые Вы присваиваете.

Однажды Вы набор завершается, если Вы хотите открыть журнал в Excel/и т.д., можно использовать relog.exe программа (включенный с Windows...) для преобразования двоичного файла в текстовый файл. Синтаксис:

relog.exe logfile.blg -f csv -o logfile.csv
10
задан 16 March 2015 в 15:39
6 ответов

pv работает с конвейерами (не командами ) - это измеритель объема, показывающий, сколько данных прошло за заданную точку конвейера.
Ваша команда grep не конвейер ( | - оператора канала нигде не найти) - это всего лишь одна команда, выполняющая свое дело. pv здесь не поможет, вам просто нужно поверить, что grep действительно выполняет свою работу со всеми входными файлами.

Вы могли бы сколотите что-нибудь вместе с find, pv, xargs & grep ( find. -name "* .rb" | pv | xargs grep [regex] похоже, это может быть многообещающим, но вам придется сказать ] pv насколько велик результат find , чтобы он давал значимые результаты.

Откровенно говоря, кажется, что работы больше, чем стоит. Просто запустите команду grep, терпеливо ждите , и обработайте результат, когда он будет готов.

15
ответ дан 2 December 2019 в 22:02

Еще два метода:

for file in *.rb; do echo $file; grep "string" $file >> output.txt; done

Или в другой оболочке во время работы исходной команды найдите pid команды grep, а затем:

strace -q -s 256 -e trace=open -p [pid] 2>&1 | head

Оба приведенных выше метода покажут вам над каким файлом в данный момент работает команда grep. Вы можете найти общее количество файлов с помощью:

ls -l *.rb | wc -l

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

ls -l *.rb | grep -n [the current filename]

PS Мои ответы предполагают, что все ваши файлы находятся в одном каталоге. Если это не так, вам придется использовать find вместо ls и * .rb , как предлагается тоньше.

4
ответ дан 2 December 2019 в 22:02

Я не уверен, какую ОС вы используете, но grep -R "string" * .ext может работать у вас неправильно.

Вы было бы лучше использовать find в сочетании с grep :

find. -type f -name "* .rb" -print0 | xargs --null grep "string"

1
ответ дан 2 December 2019 в 22:02

Вы уже пробовали

grep -R "string" *.rb | pv

Я не знаю, работает ли это на самом деле, потому что он не знает, сколько бит общих данных нужно искать, потому что он рекурсивный?

0
ответ дан 2 December 2019 в 22:02

В последних версиях pv есть "- d" -опция для наблюдения за всеми FD другого процесса.

Так что в Теория pv будет работать не только как труба, но и как индикатор прогресса для всего процесса. (Например, попробуйте это с PID вашего Firefox)

Для проблемы, описанной выше, более простая идея заключается в следующем: Пока grep работает, используйте lsof вместе с watch .

$ watch -n 1 "lsof | grep -n $PWD"

Таким образом вы можете отслеживать ход выполнения grep.

1
ответ дан 2 December 2019 в 22:02

Я обычно использую файловую систему proc в системах Linux, то есть

ls -al / proc / / fd

Здесь перечислены все файлы, которые команда grep- вызов открыт в настоящее время и, таким образом, дает представление о том, где в поиске он находится в настоящее время.

0
ответ дан 2 December 2019 в 22:02

Теги

Похожие вопросы