Как запустить команду grep для многократного разбора аргументов из входного потока?

Этот ответ на stackoverflow помог. Я обнаружил, что ядро ​​​​будет использовать правило cpu.sharesтолько тогда, когда между cgroup и системными процессами возникает конкуренция за процессор. Если конфликтов нет, контрольная группа может использовать все ресурсы ЦП. Добавление следующей строки в раздел cpu помогло:

cpu.cfs_period_us=1000000;
cpu.cfs_quota_us=800000;

Результат приведенных выше строк заключается в том, что на каждую секунду работы процессора процессам cgroup будет отведено 0,8 секунды.

Чтобы проверить, создана ли контрольная группа и активна ли она, были полезны команды systemd-cglsи systemd-cgtop.

0
02.10.2020, 16:22
1 ответ

Вы можете использовать флаг -f, который читает из файла, задавая /dev/stdinв качестве имени файла, что указывает на стандартный ввод.

printf '%s\n' "foo" "bar" | grep -f /dev/stdin input.txt 

Некоторые реализации Grep также позволяют использовать дефис -для представления стандартного ввода.

Я также использовал Printf (, который печатает «foo» и «bar», разделенные новой строкой ), потому что он более переносим, ​​чем Echo. Bash Echo потребовал бы, чтобы флаг -eинтерпретировал \nкак символ новой строки.

2
18.03.2021, 23:00

Теги

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