strace -c의 한 열 추출

strace -c의 한 열 추출

일반 명령에 대한 시스템 호출 이름을 얻으려고 하는데 명령 목록이 없습니다.
일부 명령에 대한 시스템 호출 목록을 어떻게 얻을 수 있는지 아시나요?
마지막으로 각 명령에 대해 수동으로 이러한 작업을 수행하려고 했습니다. 실행 strace -c ls하고 출력은 다음과 같습니다.

Canzanese_QRS_2015.pdf         mal-api-2019.zip
JetBrains.PyCharm.2021.1.2.tar.gz  vfvw7g8s8h-2.zip
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 18.18    0.000202          17        12           mprotect
 15.21    0.000169          10        17           mmap
 12.15    0.000135          15         9           openat
 10.17    0.000113          10        11           close
  8.28    0.000092           9        10           fstat
  6.39    0.000071          10         7           read
  4.50    0.000050           6         8         8 access
  3.78    0.000042          21         2         2 statfs
  3.06    0.000034          34         1           prlimit64
  2.88    0.000032          16         2           ioctl
  2.70    0.000030          10         3           brk
  2.52    0.000028          14         2           rt_sigaction
  2.16    0.000024          24         1           munmap
  1.62    0.000018           9         2           write
  1.53    0.000017           9         2           getdents
  1.26    0.000014          14         1           rt_sigprocmask
  1.26    0.000014          14         1           set_robust_list
  1.17    0.000013          13         1           arch_prctl
  1.17    0.000013          13         1           set_tid_address
  0.00    0.000000           0         1           execve
------ ----------- ----------- --------- --------- ----------------
100.00    0.001111                    94        10 total

이제 시스템 호출 이름인 마지막 열을 추출하는 방법과 다른 명령에 대해 이 작업을 자동화하고 CSV 파일에 저장하는 방법을 아시나요?

미리 감사드립니다

답변1

awk를 사용할 수 있습니다. 이 같은:

strace -c ls 2>&1 | awk -v p=0 \
  '{ if ($1 ~ /[\-]{6}/ ) { p = p + 1 } else if ( p == 1 ) { print $NF }}'

관련 정보