【发布时间】: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