РЕДАКТИРОВАТЬ1: Чтобы запустить его с помощью команды ps
, используйте его как:
ps -ef | awk '
{
split($7,array,":")
tot_time=array[2]*60+array[3]
if(tot_time>60){
print $2,$7,$8
}
tot_time=""
delete array
}
'
Также, чтобы охватить 1 крайний случай, когда процесс выполняется точно 1 час и меньше минуты :) попробуйте следующее.
ps -ef | awk '
{
split($7,array,":")
tot_time=array[1]*3600+array[2]*60+array[3]
if(tot_time>60){
print $2,$7,$8
}
tot_time=""
delete array
}
'
Не могли бы вы попробовать следующее. Разделение 7-го столбца на 3 разные части (часы, минуты и секунды) с разделителем в виде :
и последующим вычислением из него минут, чтобы проверить, является ли его значение больше 60 или нет.
awk '
{
split($7,array,":")
tot_time=array[2]*60+array[3]
if(tot_time>60){
print $2,$7,$8
}
tot_time=""
delete array
}
' Input_file
Тест с образцами:
cat Input_file
Field1 Field2 Field3 Field4 Field5 Field6 Field7 Field8
xxx xxx xxx xxx xxx xxx 00:01:01 xxx
xxx xxx xxx xxx xxx xxx 00:00:48 xxx
После выполнения кода будет следующий вывод.
awk '
{
split($7,array,":")
tot_time=array[2]*60+array[3]
if(tot_time>60){
print $2,$7,$8
}
tot_time=""
delete array
}
' Input_file
xxx 00:01:01 xxx