首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将for循环与cat和json2html结合使用

将for循环与cat和json2html结合使用
EN

Stack Overflow用户
提问于 2018-07-02 03:09:41
回答 2查看 218关注 0票数 0

我尝试将json文件转换为html文件。这样我以后就可以把它们导入到网站上。我的想法是运行json2table创建一个表,然后将其写入html目录。但是我不知道如何重定向json2table的输出。

代码语言:javascript
复制
for file in $(ls json/*.json); do cat $file | json2table > html/$file.html; done

但是这个结尾是

代码语言:javascript
复制
bash: html/json/26.json.html: No such file or directory

有没有人可以帮助修复这个错误?谢谢

Silvio

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-02 04:19:40

您的${file}包含json目录。当您没有目录html/json时,重定向将失败。

我认为你有一个子目录html,从${file}中去掉路径就可以了:

代码语言:javascript
复制
for file in json/*.json; do 
   cat "${file}" | json2table > html/"${file#*/}".html
   # OR avoid cat with
   # json2table < "${file}" > html/"${file#*/}".html
done

作为奖励,我删除了ls,在文件名中添加了带空格的引号,并在评论中展示了如何避免cat

票数 2
EN

Stack Overflow用户

发布于 2018-07-03 01:43:14

我想给所有完整的脚本,如果人们有相同的问题/项目或如何调用它。

第一个循环从JSON文件生成HTML表,并将其存储在HTML文件中。第二个循环将第一个循环的结果与一个模板结合起来,这样您就拥有了一个完整的页面。在body标记中,简单地搜索、删除和填充表中的include。

代码语言:javascript
复制
#!/bin/bash

jdata="json"
hdata="html" 
template="tpl/tpl.html"
tmp="tmp"

# convert json to html
# https://stackoverflow.com/questions/51126226/combine-for-loop-with-cat-and-json2html/51126732#51126732

for file in $jdata/*.json;
do
    # php
    #php json.php $file > tmp/${file#*/}.html

    # ruby
    json2table < "${file}" > $hdata/"${file#*/}".html
done

# write html file 
# https://unix.stackexchange.com/questions/32908/how-to-insert-the-content-of-a-file-into-another-file-before-a-pattern-marker

for file in html/*.html;
do
    # extract Project Number for newfile 
    filename="$(basename -- "$file")"
    extension="${filename#*.}"
    filename="${filename%.*}"

    # save the project number
    NO="$(grep "No" $jdata/$filename | sed 's/[^0-9]*//g')"
    OUT="$NO.html"

    # write new html file
    sed 's/include/$x/g' tpl/tpl.html | x="$(<$file)" envsubst '$x' > html/$OUT

done

感谢您的帮助&美好的一天Silvio

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51126226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档