awk выводит только результаты после X времени - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь создать скрипт, который печатает процессы, которые начинаются после запуска скрипта.

Сценарий

a=$(date +"%T")
while true
    do
        b=$(ps -eo pid,lstart,cmd | awk '{print $1,$5,$7}')
        log=$(awk -v A=$a '{ for (i=A; i<=NF; i++)  } ' <<< $b)
        echo $b
        sleep 2
        clear
    done

Я застрял с тем, как отформатировать awk, чтобы выполнить работу

РЕДАКТИРОВАТЬ: Н.В.М., я сделал это

time=$(date +"%T")
date=$(date +"%e")
while true
    do
        b=$(ps -eo pid,lstart,cmd | awk -v A="$time" -v B="$date" '{ if ( A <= $5 && B <= $4 ) print $1,$4,$5,$7;}')
        echo "$b"
        sleep 2
        clear
    done

Печать сценария

10969 6 13:02:19 /usr/bin/python3
10979 6 13:02:23 bash
10980 6 13:02:23 ps
10981 6 13:02:23 awk

, поскольку это единственные процессы, выполняемые ПОСЛЕ сценария

1 Ответ

0 голосов
/ 09 марта 2020

Сделал такой скрипт

time=$(date +"%T")
date=$(date +"%e")
while true
    do
        b=$(ps -eo pid,lstart,cmd | awk -v A="$time" -v B="$date" '{ if ( A <= $5 && B <= $4 ) print $1,$4,$5,$7;}')
        echo "$b"
        sleep 2
        clear
    done

Вывод

10969 6 13:02:19 /usr/bin/python3
10979 6 13:02:23 bash
10980 6 13:02:23 ps
10981 6 13:02:23 awk
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...