Здесь мы выделяем диапазон временного интервала плюс следующий (или eof, если он последний). Это делается для того, чтобы избежать захвата данных следующего слота, если текущий слот не имеет значений крутящего момента/тяги. Таким образом, вам будут предоставлены устаревшие данные без сообщений об ошибках.
Команда H
добавляет пространство шаблона к пространству хранения. g
извлечет область удержания и поместит ее в пространство шаблонов.
tslot=26; # input the time you want the thrust/torque data for
sed -ne '
/^Time = '"${tslot}"'$/,/^Time =/!d
/^Total thrust =/{H;d;}
/^Total torque =/{H;d;}
g;/\n.*\n/!d
/thrust.*torque/s/\(\n.*\)\(\n.*\)/\2\1/
s/\n[^=]*=//gp;q
' logfile
1.03953 -8.51463
strace печатает в stderr
, а не в stdout
. Вам нужно будет перенаправить stderr
на stdout
, если вы хотите передать его по конвейеру.
strace -e trace=file lastb 2>&1|grep " = 0" > file
Вы можете дополнительно подавить нормальный вывод lastb
, перенаправив его на/dev/null
(сокращенно здесь как&-
)
strace -e trace=file lastb 2>&1 >&- | grep " = 0" file
Если вы просто хотите узнать, откуда lastb
берет информацию, обычно это/var/log/btmp