Пример обработки данных поступающих на STDIN
Недавно начал использовать php для пост обработки, некоторых данных полученных в консоли линукса. Например, я хотел бы каким-то образом подсветить некоторые данные, после выполнения команды: ps -A | grep mysql ...
Стандартный вывод команды:
1 2 3 |
ps -A | grep mysql |
вот такой:
1 2 3 4 |
23971 pts/1 00:00:00 mysqld_safe 24133 pts/1 00:18:10 mysqld |
а нам вдруг захотелось конкретно mysqld отметить знаком <--, чтобы получилось так:
1 2 3 4 |
23971 pts/1 00:00:00 mysqld_safe 24133 pts/1 00:18:10 mysqld <-- |
делается это с помощью чтения потока STDIN, вот так:
1 2 3 |
ps -A | grep mysql | php -r "while(\$o=fgets(STDIN)) echo trim(\$o).(preg_match(\"|mysqld\$|\", \$o)?' <--':'').PHP_EOL;" |
данный пример, особо не имеет смысла, но он выбран, только в качестве демонстрации возможностей такой работы. Конечно, возможно, вы можете все это сделать и с помощью grep-а. Однако, я с этой утилитой не особо дружу, поэтому мне легче это делать с помощью php. Например, вот в этом посте: Скрипт для создания пользователей ProFTPD, описан скрипт, в котором я с помощью такой команды получаю UID и GID пользователя proftpd из файла passwd.
Author: | Tags: /
| Rating:
Leave a Reply