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

如何在现有Shell管道中提取隔行尾段并拼接为无空格字符串?

解决方案:基于现有管道实现需求

当然可以!咱们直接在你现有的命令管道后面追加几个轻量的文本处理工具,就能完美实现你的需求。下面是完整的命令和分步解释:

完整命令

cat received.cap | grep -E "0x00(2|3)0" | cut -d " " -f 2- | awk '{if(NR%2==0) {print $(NF-1), $NF}}' | tr -d ' '

分步拆解

咱们从你已有的管道开始,一步步看新增部分的作用:

  1. 原过滤管道:cat received.cap | grep -E "0x00(2|3)0" | cut -d " " -f 2-
    这部分你已经搞定了——从抓包文件里过滤出包含0x0020或0x0030的行,然后去掉每行的第一个字段,得到你给出的初始输出。
  2. 提取偶数行的最后两个字段:awk '{if(NR%2==0) {print $(NF-1), $NF}}'
    • NR%2==0:判断当前处理的是不是偶数行(因为你要的是每第二行的内容)
    • $(NF-1):代表当前行的倒数第二个字段,$NF代表当前行的最后一个字段
    • 这一步会把所有符合条件的字段按顺序输出,用空格分隔
  3. 拼接成无空格字符串:tr -d ' '
    • tr是字符替换工具,-d参数表示删除指定字符,这里删除所有空格,直接把所有字段拼接成连续的字符串。

验证效果

用你给出的测试输入,这个命令会输出你想要的无空格长字符串:

000000005155464251554a43516b4a440000000151304e4452455245524556460000000252555647526b5a475230634b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:38:09