技术解析

可以用 shell 脚本实现这个功能吗?
0
2021-06-18 21:08:59
idczone

服务器上有多个 yml 数据文件,想转换为 HTML 表格文件。原数据不是很复杂,有两列数据,具体如下:

yml 文件内容

date:
  1.0.1: http://example.com/1.0.1.tgz
  1.0.2: http://example.com/1.0.2.tgz
  1.0.3: http://example.com/1.0.3.tgz
  1.0.4: http://example.com/1.0.4.tgz
  1.0.5: http://example.com/1.0.5.tgz
  1.0.6: http://example.com/1.0.6.tgz
  1.0.7: http://example.com/1.0.7.tgz
  1.0.8: http://example.com/1.0.8.tgz
  1.0.9: http://example.com/1.0.9.tgz
  1.0.10: http://example.com/1.0.10.tgz

需要转换表格格式,有几个地方需要操作:1. 忽略第一行 date:字符串,2. 剩下的版本号和下载链接分两列,3. 网址添加超链接标签。

ver link
1.0.1 file
1.0.2 file
1.0.3 file
1.0.4 file
1.0.5 file
1.0.6 file
1.0.7 file
1.0.8 file
1.0.9 file
1.0.10 file

小白没有 shell 基础,网上搜索看了几页结果看得云里雾里,所以请教下各位大佬,任何帮助提前致谢!

awk

可以麻烦写个示例用法吗?为这个问题折腾了一下午。。。

Python 省事

1. 为什么要只用 shell
2. 就算找到可用方法大部分都是只是用 shell 跑别人写好的各种 cli
3. 装个可以解 yaml 的语言 nodejs 或 python 甚至 php 自己写个自己操作不好?

python+1 现在发行版都自带 python 环境的,直接用 python 吧

用 Python,从第二行开始读,split,把链接读到一个 list 里面,然后构造你要的格式。

有可以处理这种需求的脚本推荐吗?

可以。。太简单了。 关键词:bash read file,awk,echo, >

你这个问的太伸手党了,没有人会写给你的。

可以付费解决吗?如果可以,麻烦报个价格,也不想做伸手党。。

这个问题不难,你先用 Google 或者必应,搜索一下我说的关键词,去先学习一下 shell 相关的东西吧。
估计一天就学的不错了,然后最多 30 分钟不到写完。

算了 我来写一个吧

https://gist.github.com/aheadlead/72bb3f0f2c2711d6cd58d5ef06477ba8

awk -F ': ' '$2 ~ /tgz$/ {print "\n"$1"\nfile\n"}' filename

解析结构化的数据,建议用能正确解析这种格式的库,不建议用取巧的办法。在这个例子里要解析 YAML,那么就找个能解析 YAML 的库。比如用 Python 装上 pyyaml https://pyyaml.org/ ,或者用 Ruby 标准库里的 yaml https://ruby-doc.org/stdlib-2.6.4/libdoc/yaml/rdoc/index.html
至于说输出 HTML 的步骤,用模板语言或者自己拼字符串,都随意了。

yq

这样的数据让我选的话我还是选择用 Python 写。

下面好多人给了
数据地带为您的网站提供全球顶级IDC资源