[ 7.290235] calling ci_hdrc_platform_register+0x0/0x1c @ 1 [ 7.295997] initcall ci_hdrc_platform_register+0x0/0x1c returned 0 after 169 usecs [ 7.303629] calling ci_hdrc_usb2_driver_init+0x0/0x10 @ 1 [ 7.309563] initcall ci_hdrc_usb2_driver_init+0x0/0x10 returned 0 after 396 usecs
时间: 2024-03-27 18:41:07 浏览: 79
可以使用以下命令,将原始文本中的每一个函数调用的函数名和执行时间提取出来,并按照执行时间进行排序:
grep "calling\|initcall" file.txt | awk '{if ($2 == "calling") {printf("%s ", $3)} else {print $2}}' | sed -E 's/(\w+)\+.+ ([0-9]+).+/\1 \2/g' | sort -n -k 2
其中,file.txt
需要替换为实际的文件名。
该命令的具体解释如下:
grep "calling\|initcall" file.txt
:从文件中筛选出包含calling
或initcall
的行;awk '{if ($2 == "calling") {printf("%s ", $3)} else {print $2}}'
:根据关键字calling
或initcall
将每行文本分割成函数名和执行时间两个部分;- 如果是
calling
,则提取出第三个字段(即函数名),并将其输出; - 如果是
initcall
,则直接输出第二个字段(即执行时间);
- 如果是
sed -E 's/(\w+)\+.+ ([0-9]+).+/\1 \2/g'
:使用正则表达式提取函数名和执行时间,忽略掉其它部分;sort -n -k 2
:按照执行时间进行排序,其中-n
表示按照数字大小排序,-k 2
表示按照第二个字段进行排序(即执行时间)。
执行命令后,输出结果将会按照执行时间从小到大进行排序,并且每一行文本中只包含函数名和执行时间两个部分,中间用空格分隔。
相关推荐


















