Usemos tput
para generar el código de color para su terminal para amarillo y negro:
$ yel=$(tput setaf 3)
$ blk=$(tput setaf 0)
Examinemos qué incluye realmente el código amarillo:
$ echo -n "$yel" | hexdump -C
00000000 1b 5b 33 33 6d |.[33m|
00000005
Ahora, podemos usar grep
para buscar el código de color amarillo e imprimir la cadena que coincide desde el comienzo del código amarillo hasta el siguiente código, cualquiera que sea ese código:
$ echo "abc ${yel}Yellow${blk} def" | grep -Eo $'\x1b\[33m.[^\x1b]*\x1b\[....'
Yellow
Tenga en cuenta que el código de color para el amarillo incluye [
que grep
considera un carácter activo de expresiones regulares. Por lo tanto, para hacer coincidir un literal [
, necesitamos escaparlo para grep
. Para hacer esto, usamos $'...'
de bash para definir el código de color con [ `escapado.
Es probable que haya más de un código para producir amarillo en su terminal. Querrá examinar la salida de cualquier comando que esté utilizando para determinar qué códigos se están utilizando e incluirlos en su comando grep
.
ps -axuwww
:
axu
: синтаксис BSD для перечисления всех процессов в системе
www
: максимальная ширина
Вот полная команда, выполняемая слева направо:
/ usr / ucb / ps -axuwww | grep java
: выводить только строки, содержащие "java"
.. | grep "SmartFileConvertor $ instance"
: выводить только строки, содержащие "SmartFileConvertor" с некоторым значением экземпляра, установленным как переменная среды
.. | grep -v grep
: выводить только те строки, которые не содержат «grep»
.. | nawk '{print $ 2}'
: вывести второй столбец, который является pid
..> $ {pidFile}
: перенаправить вывод в файл с именем внутри переменной среды pidFile
Если вы хотите узнать параметры команды / программы, страница руководства
обычно доступна с помощью команды man
, например man ps
и man grep
.