每行要保留 after后面的时间
时间: 2023-09-30 13:12:22 浏览: 37
可以使用以下命令来提取出包含 `initcall` 关键字的行,并按照 `after` 后面的时间大小进行排序,并在每行行首添加函数的执行时间和 `after` 后面的时间:
```bash
grep "initcall" file.txt | sed -E 's/.*(after [0-9]+ usecs)/ \1 &/g' | sort -n | sed -E 's/[0-9]+ //g'
```
其中,`file.txt` 需要替换为实际的文件名。
该命令与之前的命令相比,只是在第二个 sed 命令中保留了 `after` 后面的时间,而不是去掉它。
执行命令后,输出结果将会按照 `after` 后面的时间大小重新排序,并在每行行首添加函数的执行时间和 `after` 后面的时间。
相关问题
提取出initcal 开关的行,并按after 后面的时间大小重新对文本排序,并在行首添加after后面的时间
可以使用以下命令来提取出包含 `initcall` 关键字的行,并按照 `after` 后面的时间大小进行排序,并在每行行首添加 `after` 后面的时间:
```bash
grep "initcall" file.txt | awk '{print $(NF-1), $0}' | sort -n | awk '{print $1, $NF}' | sed -E 's/[0-9]+ //g'
```
其中,`file.txt` 需要替换为实际的文件名。
该命令与之前的命令相比,在排序后使用了另一个 awk 命令来将 `after` 后面的时间和整行文本的顺序调换,然后在输出时使用了 sed 命令将时间部分去掉,只保留整行文本。
执行命令后,输出结果将会按照 `after` 后面的时间大小重新排序,并在每行行首添加 `after` 后面的时间。
提取出initcal 开关的行,并按after 后面的时间大小重新对文本排序
可以使用以下命令来提取出包含 `initcall` 关键字的行,并按照 `after` 后面的时间大小进行排序:
```bash
grep "initcall" file.txt | sed -E 's/.*after ([0-9]+) usecs/\1 &/g' | sort -n | sed -E 's/[0-9]+ //g'
```
其中,`file.txt` 需要替换为实际的文件名。
该命令的具体解释如下:
- `grep "initcall" file.txt`:使用 grep 命令提取出包含 `initcall` 关键字的行;
- `sed -E 's/.*after ([0-9]+) usecs/\1 &/g'`:使用 sed 命令将每行文本中 `after` 后面的时间提取出来,并将其与整行文本用空格分隔,然后输出。这里使用圆括号将 `[0-9]+` 匹配到的数字部分作为一个分组,`\1` 表示分组的内容,`&` 表示整行文本;
- `sort -n`:使用 sort 命令对提取出的时间进行排序,按照数字大小进行升序排列;
- `sed -E 's/[0-9]+ //g'`:使用 sed 命令将排序后的文本中的时间部分去掉,只输出整行文本。
执行命令后,输出结果将会按照 `after` 后面的时间大小重新排序,并只输出包含 `initcall` 关键字的行。