name linux bash shell grep cgi

name - ps linux



AnĂ¡lisis de salida de ps y grep en shell (2)

Dado que la pregunta está etiquetada como bash , se prefieren las soluciones bash-only (sin awk ni perl) ...

LINE=''apache 6215 1 0 11:20 ? 00:00:00 perl /scripts/myscript.pl -sn 4123E -sku HSME01-HW -port 8'' ## Convert string to bash array ARR=($LINE) echo "start time (${ARR[4]})" echo "sn (${ARR[10]})" echo "sku (${ARR[12]})" echo "port (${ARR[14]})" ## How to save the value? START_TIME=${ARR[4]}

Recibo el siguiente mensaje cuando hago un "ps -ef | grep port"

apache 6215 1 0 11:20 ? 00:00:00 perl /scripts/myscript.pl -sn 4123E -sku HSME01-HW -port 8

¿Hay alguna manera de analizar lo siguiente?

  • hora de inicio (11:20)
  • sn (4123E)
  • sku (HSME01-HW)
  • puerto (8)

Puede usar awk para filtrar y analizar:

ps -ef | awk ''/[p]ort/ {printf "start time: %s/nsn: %s/nsku: %s/nport: %s/n", $5, $11, $13, $NF}''

Como glenn jackman señaló en los comentarios, los corchetes en la cadena de filtro impiden que la expresión coincida con la cadena de filtro en la lista de procesos.