Неожиданная команда перенаправления

Здесь мы выделяем диапазон временного интервала плюс следующий (или 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
0
09.07.2017, 16:18
1 ответ

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

3
28.01.2020, 02:25

Теги

Похожие вопросы