bash - 从conf文件准备html表
问题描述
我有像 conf.txt 这样的 conf 文件,下一个值
var=somevalue1
var1=somevalue2
var2=somevalue3
var3=http://somevalue1
这个想法是将其准备成带有表格的HTML页面
<tr>
<td>var</td>
<td>somevalue1</td>
</tr>
<tr>
<td>var3</td>
<td><a href="http://somevalue1">http://somevalue1</a></td>
</tr>
问题是 - 最好的方法是用什么来准备它?
所以我可以使用 readarray 从文件中读取,然后使用 awk 之类的东西来拆分它。不幸的是,我在 powershell 方面做得很好,但在 bash 方面真的很差。
你能给一些建议或例子吗?
我打算把这个放到var中,然后把这个var放到EOF中来创建一个页面
解决方案
假设:
- 只需要担心 2x 数据类型... 1)基本变量和2) URL
- 所有 URL 数据都以字符串开头
http
- 数据可能包含嵌入的等号
样本数据:
$ cat conf.dat
var=somevalue1
var1=somevalue2
var2=somevalue3
var2x=somevalue3=345 # value includes embedded "="
var3=http://somevalue1
var4=http://somevalue1/index.html&id=35 # value includes embedded "="
一个awk
想法:
awk -F'=' '
{ newvalue="" # in case value includes embedded equal signs ...
sep=""
for (i=2;i<=NF;i++) { # loop through fields 2 thru NF ...
newvalue = newvalue sep $(i) # appending to new "=" delimited string
sep=FS
}
}
$2 ~ /^http/ { print "<tr>\n\t<td>" $1 "</td>\n\t<td><a href=\"" newvalue "\">" newvalue "</a></td>\n</tr>\n"
next
}
{ print "<tr>\n\t<td>" $1 "</td>\n\t<td>" newvalue "</td>\n</tr>\n" }
' conf.dat
这会产生:
<tr>
<td>var</td>
<td>somevalue1</td>
</tr>
<tr>
<td>var1</td>
<td>somevalue2</td>
</tr>
<tr>
<td>var2</td>
<td>somevalue3</td>
</tr>
<tr>
<td>var2x</td>
<td>somevalue3=345</td>
</tr>
<tr>
<td>var3</td>
<td><a href="http://somevalue1">http://somevalue1</a></td>
</tr>
<tr>
<td>var4</td>
<td><a href="http://somevalue1/index.html&id=35">http://somevalue1/index.html&id=35</a></td>
</tr>
推荐阅读
- react-native - 如何将 View 定位在 ScrollView 的底部?
- javascript - 无法在我的 HTML/JS 页面上获取背景图片
- javascript - 加载 JS 脚本,当用户按下浏览器上的后退按钮时
- java - java - 如何防止JSON响应中未使用的值在Java中使用Springfox返回为null?
- c# - 在 C# 控制台自托管 Web API 中实现 oAuth2.0 时出错
- python - TypeError:列表索引必须是整数或切片,而不是浮点数
- javascript - tsc 错误地将 .ts 文件编译成 .js
- ios - 为什么 AVURLAsset 不加载文件?
- php - Google 安全浏览 API 对我不起作用
- javascript - 未捕获(承诺中)类型错误:无法读取未定义的属性“切片”