You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unix中使用cut或awk处理grep输出结果?

解决方法

针对你的需求,使用awk可以更灵活地处理多分隔符的提取,以下是可行的命令:

grep -I '15:00.*Receivedrequest.*' test.log | awk -F'\\[|, |=|\\]' '{print $2, $4, substr($6, 1, 3), $8}'

命令说明:

  • -F'\\[|, |=|\\]':将[、, 、=、]都设为分隔符,把原字符串拆分为多个字段:
    • $2 对应提取的Sai
    • $4 对应Year=后面的2023
    • substr($6, 1, 3) 从Birth=后的1999中截取前3位,得到199
    • $8 对应Location=后面的SYD

为什么之前的命令无效:

你之前的命令先通过awk按空格分割行,但原输出中Receivedrequest和[之间没有空格(或空格位置不符合预期),导致$2/$3/$4无法正确提取目标内容,后续的cut也只能截取到部分字段,最终结果不符合预期。

内容的提问来源于stack exchange,提问作者Sai Srinivas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:33:20