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

如何将grep提取的date与name结果合并生成单张HTML表格?

需求与解决方案

我现在碰到个小问题:我用两条grep语句从指定文件里提取date和name字段,转成HTML表格后得到的是两个独立的表格,但我想要的是每行同时包含对应date和name的单个HTML表格,麻烦帮忙实现一下预期效果~

当前使用的命令

grep 'date' /path/to/file | cut -d "=" -f2-7 | cut -d " " -f2-7 | sed -e 's~.*=\(.*\)~<tr><td>\1</td></tr>~;1i\<html><table border="1">' -e '$a\</table>\n</html>'; grep 'name' path/to/file | cut -d " " -f1 | sed -e 's~.*=\(.*\)~<tr><td>\1</td></tr>~;1i\<html><table border="1">' -e '$a\</table>\n</html>';

当前输出

<html> <table border ="1"> <tr><td>Sun Sep 18 23:08:20 PDT 2022</td></tr> <tr><td>Sun Sep 18 23:15:50 PDT 2022</td></tr> <tr><td>Sun Sep 18 23:49:08 PDT 2022</td></tr> </table> </html> <html> <table border ="1"> <tr><td>aastha</td></tr> <tr><td>anukriti</td></tr> <tr><td>aakriti</td></tr> </table> </html>

样本输入

name=aastha date=Sun Sep 18 23:49:08 PDT 2022 name=anukriti date=Sun Sep 18 23:15:50 PDT 2022 name=aakriti date=Sun Sep 18 23:08:20 PDT 2022

预期输出

<html><table border="1"> <tr><td>Wed Sep 15 13:27:03 PDT 2021</td><td>aastha</td></tr> <tr><td>Wed Sep 15 14:36:11 PDT 2021</td><td>kiyo</td></tr> <tr><td>Wed Sep 15 21:13:12 PDT 2021</td><td>amisha</td></tr> <tr><td>Thu Sep 16 06:31:22 PDT 2021</td><td>anukriti</td></tr> <tr><td>Thu Sep 16 09:36:32 PDT 2021</td><td>aakriti</td></tr> <tr><td>Thu Sep 16 09:39:09 PDT 2021</td><td>harni</td></tr> <tr><td>Sun Sep 18 23:15:50 PDT 2022</td><td>harshu</td></tr> </table> </html>

解决方案

可以用awk一次性处理输入,精准配对name和date后生成单个表格,既高效又能保证对应关系:

awk '{
    # 遍历所有字段,提取配对的name和date
    for (i=1; i<=NF; i++) {
        if ($i ~ /^name=/) {
            sub(/^name=/, "", $i)
            current_name = $i
        } else if ($i ~ /^date=/) {
            sub(/^date=/, "", $i)
            # 拼接完整日期(日期包含空格,需要往后取所有关联字段)
            current_date = $i
            for (j=i+1; j<=NF && $j !~ /^name=/; j++) {
                current_date = current_date " " $j
                i = j
            }
            # 收集配对好的表格行
            table_rows = table_rows "<tr><td>" current_date "</td><td>" current_name "</td></tr>\n"
        }
    }
}
END {
    # 输出完整的HTML表格结构
    print "<html><table border=\"1\">" table_rows "</table></html>"
}' /path/to/file

功能说明

  • 脚本会逐行扫描目标文件,自动把每个name和对应的date配对(适配样本输入里name和date成对出现的结构)
  • 处理日期字段时,会自动拼接所有属于该日期的空格分隔内容,确保日期完整不截断
  • 最后一次性输出包含所有配对行的单个HTML表格,完全符合预期效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:07:28