Sysdig не отображает событие выхода для системного вызова записи

Прежде всего, поскольку вы изучаете *никсов, это пример "бесполезного использования кота" (известного тропа в *мире никсов ). cat file | awk commandздесь не нужен, вы можете просто сделать awk command file.

Так или иначе, на awk. Действие по умолчанию, когда выражение оценивается как истинное в awk, состоит в том, чтобы напечатать текущую строку. NR— номер текущей строки, поэтому NR == 1будет верным для первой строки файла. Затем awk разбивает свой ввод на поля с пробелами (или чем-то еще, что вы выбираете, используя опцию -F). Затем поля доступны как переменные $1, $2,... $NF, где NF— количество полей. Поэтому $NF— это содержимое последнего поля.

Собрав все это воедино,выражение awk 'NR == 1 || $NF < 0.05/1783'будет истинным в первой строке и в любой другой строке, последнее поле которой меньше, чем 0.05, деленное на 1783.

Вы могли бы написать то же самое менее идиоматически, но более ясно, как:

awk '{ 
        if(NR ==1 ){
            print
        } 
        else if ($NF < 0.05/1783){ 
            print 
        }
     }' PGC2.SCZ.1.dat
0
11.05.2021, 08:49
1 ответ

Судя по всему, в версии, поставляемой с Ubuntu, были какие-то проблемы. Я скачал последнюю версию (0.27.1 )с веб-сайта sysdig, и теперь результат правильный :

.
65099 19:55:54.695520567 7 example (10805) > write fd=1(<f>/dev/pts/0) size=16 
65102 19:55:54.695526434 7 example (10805) < write res=16 data=
    0x0000: 5374 616e 6461 7264 206f 7574 7075 740a  Standard output.
 
65103 19:55:54.695528110 7 example (10805) > write fd=2(<f>/dev/pts/0) size=15 
65104 19:55:54.695529507 7 example (10805) < write res=15 data=
    0x0000: 5374 616e 6461 7264 2065 7272 6f72 0a  Standard error.
0
28.07.2021, 11:33

Теги

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