【问题标题】:Bash command to write the contents of multiple files into a single filebash命令将多个文件的内容写入单个文件
【发布时间】:2010-10-13 00:37:39
【问题描述】:

我想知道将多个 .html 文件(分布在多个文件夹中)合并到一个 html 文件中的最佳方法是什么。如果有人可以创建一个简单的 bash 命令,那就太棒了。 (这是一种解决方法,因此我可以使用 firebug 的命令行 API 来有效地搜索整个站点的 html 选择器组合。据我所知,firebug 只能在一个页面上搜索。)

非常感谢这位受阻的前端设计师的任何帮助。

【问题讨论】:

    标签: bash firebug


    【解决方案1】:
    cat file1.html file2.html file3.html > newfile.html
    

    编辑 这可能更容易

    find . -name="*.html" | xargs cat >> ../newfile.html
    

    请注意,newfile.html 是从当前目录向上推送的,因此它不会被嵌入到自身中。

    【讨论】:

      【解决方案2】:

      好吧,如果您不担心生成的文件是否正确,cat 似乎是最简单的方法:

      cat file1.html file2.html file3.html > result.html
      

      当然,这些文件中的每一个在顶部都有一个<html> 标签,在底部有一个结束标签,所以它不是一个有效的 HTML 文件。 Firefox 可能会加载它,但我不知道它会如何显示它……也许只有第一个?

      【讨论】:

      • 这样不容易获取子目录下的所有文件。
      【解决方案3】:
      for file in `ls *.html`; do cat "$file" >> output.html; done
      

      【讨论】:

      • 注意文件名中的空格!我会先将文件读入一个数组,然后在 for 循环中迭代它们,或者使用 'while read line;做'
      • 没错,但你会因为在文件名中使用空格而去地狱。 ;)
      【解决方案4】:

      您总是使用 grep 在一组文件中搜索某些内容,而不是合并所有文件然后搜索那个文件。

      grep <string you are looking for> <folder containing all of files> -r
      

      【讨论】:

      • 我认为 -r 必须在字符串和文件夹之前。
      • grep -r 例如“grep -r milquetoast.”
      • 一开始我也是这么想的,但到最后也是这样;我只是快速检查了一下。
      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多