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

如何修改sed、grep命令 将匹配文本格式化为指定结构HTML表格

处理效果参考

现有命令

当前使用的处理命令存在逻辑问题,无法按要求分组输出表格:

grep -rlZ "$pattern" /path/of/file/ | xargs -0 grep -rZ "$pattern" | sed -e 's~.*=\(.*\)~<tr><td>\1</td></tr>~;1i\<html><table border="1">' -e '$a\</table>\n</html>`;

规则说明

需要修改上述sed逻辑,满足以下要求:

  • 源数据为key==value格式,每5条连续数据为一组
  • 每组数据的所有value放在同一个<tr>标签内,单个value用独立<td>标签包裹
  • 最终输出完整合法的带边框HTML表格结构

待处理源数据示例:

name==ABC
City==Rohini
State==Delhi
Age==18
Country==India

预期输出格式:

<html><table border="1">
 <tr><td>Aastha</td>
 <td>Rohini</td>
 <td>Delhi</td>
 <td>20</td>
 <td>India</td>
 </tr>
 <tr>
 <td>Aastha</td>
 <td>Dwarka</td>
 <td>Delhi</td>
 <td>20</td>
 <td>India</td>
 </tr>
 </table>
  </html>

修改后可用命令

grep -rlZ "$pattern" /path/of/file/ | xargs -0 grep -rhZ "$pattern" | sed '
s/.*==\(.*\)/ <td>\1<\/td>/
1~5i\ <tr>
5~5a\ </tr>
1i\<html><table border="1">
$a\</table>\n</html>
'

改动点说明

  • 给xargs调用的grep增加-h参数,屏蔽多文件匹配时自带的文件名:前缀,避免取值错误,同时删除原命令末尾多余的反引号语法错误
  • 删除原sed逐行套<tr>的逻辑,改用步长匹配规则:每5行为一组,组首插入<tr>开标签,组尾插入</tr>闭标签
  • 调整取值匹配规则,适配源数据==的双等号分隔符,只提取等号后的value值包装为<td>标签
  • 保留首尾插入HTML、表格框架标签的逻辑,保证输出结构完整合法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:39:28