Несколько более надежным шаблоном (, т.е. несколько меньшим риском случайного пропуска неправильных строк ), может быть
| grep -v "= -1 ENOENT [(]No such file or directory[)]$"
Т.е. скопируйте -вставьте конец строки, «избегая» квадратных скобок (, которые в противном случае могли бы рассматриваться как специальные символы ), и добавьте специальный символ $
в конец, который «привязывает» шаблон к концу линии.
Я не могу найти лучшего варианта в man strace
. Быстрые и грязные манипуляции с текстом — это Unix Way :-P.
Почти наверняка можно делать то, что вы хотите, с помощью пользовательского сценария gdb
. Однако это больше работы, и у меня нет готового сценария.
Другой вопрос относится к сценарию tracefile
, который можно запустить с параметром -e
. Это по-прежнему реализуется путем анализа вывода strace
, поэтому он также не кажется полностью надежным, но я думаю, возможно, вы бы предпочли его.https://gitlab.com/ole.tange/tangetools/blob/master/tracefile/tracefile
В конце содержимого var3
есть символ возврата каретки (CR ). После того, как он печатается без непосредственно следующего за ним символа новой строки (перевода строки, LF ), оставшаяся часть строки печатается с левого края, перезаписывая уже напечатанное начало строки.
Стандарт окончания строки в Unix — LF, а не CR LF.
Перепишите строку скрипта, в которой определена переменная, или используйте dos2unix
в файле.