如何使用Bash将conf配置文件键值对转换为带超链接的HTML表格
解决方案
直接使用awk即可完成全部转换需求,执行效率高、代码简洁,不需要额外拆分读取逻辑,示例实现如下:
1. 生成表格行内容并存入变量
# 基础版:仅适配值无等号的场景 table_content=$(awk -F '=' ' { if ($2 ~ /^http/) { val = "<a href=\"" $2 "\">" $2 "</a>" } else { val = $2 } print " <tr>" print " <td>" $1 "</td>" print " <td>" val "</td>" print " </tr>" }' conf.txt)
如果你的配置值本身可能包含等号,可以使用优化版,确保第一个等号后的所有内容都识别为值:
# 优化版:适配值包含等号的场景 table_content=$(awk ' BEGIN {FS="="} { key = $1 # 拼接第一个等号后的所有内容作为值 val = substr($0, length(key)+2) if (val ~ /^http/) { val = "<a href=\"" val "\">" val "</a>" } print " <tr>" print " <td>" key "</td>" print " <td>" val "</td>" print " </tr>" }' conf.txt)
2. 生成完整HTML页面
拿到存储了表格行的变量后,通过Here Document即可快速生成完整HTML文件:
cat > config_table.html << EOF <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>配置项列表</title> </head> <body> <table border="1" cellpadding="8" cellspacing="0"> <tr> <th>配置键</th> <th>配置值</th> </tr> ${table_content} </table> </body> </html> EOF
执行完成后会在当前目录生成config_table.html文件,就是你需要的完整页面。
内容的提问来源于stack exchange,提问作者Kirill Kiselev
相关产品推荐
相关产品推荐

