【问题标题】:list file and using awk to get comment列出文件并使用 awk 获取评论
【发布时间】:2015-03-27 19:01:19
【问题描述】:

我想获取文件夹中所有文件的所有注释。

我尝试过的是

ls -R | awk '/<!--/,/-->/' >> result

但它在结果文件中没有显示任何内容。

但如果我将awk '/<!--/,/-->/' >> result 用于文件,它就可以工作。

html评论标签是<!-- some text here -->。

我应该如何解决它。

【问题讨论】:

  • 您遇到的问题是 ls -R 创建了一个文件名列表,而且很可能没有一个文件名与您的注释分隔符模式匹配(如果有,您已经可能会遇到某些...并发症...使用此类文件名;或者您稍后会遇到)。您要搜索文件的内容,而不是文件名。类似于find . -type f -name "*.html" -print0 | xargs -0 awk '....' 的东西。但是 HTML 解析器可能比 awk... 更好
  • @twalberg 你是对的,你给炒锅的方法。我想问的是我为什么要awk '/<!--/,/-->/' filename >> result,它有效。但是当我使用ls 的标准输出时它失败了,它们不都是字符串吗?
  • @twalberg 如果可以,请将其发布到答案中,我会接受。

标签: bash shell command-line awk


【解决方案1】:

您遇到的问题是ls -R 创建了您正在搜索模式的文件名列表。最有可能的是,没有一个文件的名称与您的注释分隔符模式匹配(如果有,您可能会遇到某些...复杂的问题...使用此类文件名;或者您稍后会遇到)。

您要搜索文件的内容,而不是文件名。大致如下:

find . -type f -name "*.html" -print0 | xargs -0 awk '....'

但是对于解析 HTML,HTML 解析器可能比 awk 更好。

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2012-01-31
    • 2016-03-21
    • 2021-11-01
    • 2013-11-17
    相关资源
    最近更新 更多