gpt4 book ai didi

regex - 从终端的命令输出中提取单行

转载 作者:行者123 更新时间:2023-11-29 09:51:19 25 4
gpt4 key购买 nike

我想从我正在处理的一些日志记录脚本的 perf stat 输出中提取包含“经过的秒数”输出的行。

我不想将输出写入文件然后搜索文件。我想使用“grep”或类似的东西来做到这一点。

这是我尝试过的:

perf stat -r 10 echo "Sample_String" | grep -eE "seconds time elapsed"

我得到了

    grep: seconds time elapsed: No such file or directory
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe
echo: Broken pipe

Performance counter stats for 'echo Sample_String' (10 runs):

0.254533 task-clock (msec) # 0.556 CPUs utilized ( +- 0.98% )
0 context-switches # 0.000 K/sec
0 cpu-migrations # 0.000 K/sec
56 page-faults # 0.220 M/sec ( +- 0.53% )
<not supported> cycles
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
<not supported> instructions
<not supported> branches
<not supported> branch-misses

0.000457686 seconds time elapsed ( +- 1.08% )

我试过了

perf stat -r 10 echo "Sample_String" > grep -eE "seconds time elapsed"

我得到了

 Performance counter stats for 'echo Sample_String -eE seconds time elapsed' (10 runs):

0.262585 task-clock (msec) # 0.576 CPUs utilized ( +- 1.11% )
0 context-switches # 0.000 K/sec
0 cpu-migrations # 0.000 K/sec
56 page-faults # 0.214 M/sec ( +- 0.36% )
<not supported> cycles
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
<not supported> instructions
<not supported> branches
<not supported> branch-misses

0.000456035 seconds time elapsed ( +- 1.05% )

我是 grep、awk 和 sed 等工具的新手。我希望有人能帮助我。我也不想将输出写入文件然后搜索文件。

最佳答案

这里的问题是你想要的输出被发送到 stderr 而不是标准输出。

您可以通过将 stderr 重定向到/dev/null 来看到这一点,并且您会看到唯一剩下的结果是来自“echo”命令的结果。

~/ perf stat -r 10 echo "Sample_String" 2>/dev/null
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String
Sample_String

为了做你想做的事,你必须将perf 的stderr 重定向到标准输出,并隐藏标准输出。这样,perf 的输出将被发送到 grep 命令。

~/ perf stat -r 10 echo "Sample_String" 2>&1 >/dev/null | grep 'seconds time elapsed'       
0,013137361 seconds time elapsed ( +- 96,08% )

关于regex - 从终端的命令输出中提取单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com