列出文件并使用 awk 获取注释

列出文件并使用 awk 获取注释

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

我尝试过的是

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

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

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

html 注释标签是<!-- some text here -->

我该如何修复它。

答案1

您的 awk 正在查看文件名而不是文件内容。以下是一种更好的方法:

find ./ -type f -execdir grep "<!--.*-->" "{}" +

它用于find获取所有文件的列表,然后将其输入到grep搜索您要查找的文本的程序中。然后它将输出任何匹配文件的名称,后跟冒号 (:) 和匹配行的文本。

答案2

ls -R将仅列出文件名而不是文件内容。您可以使用grep命令以更简单的方式执行此操作。

grep -rn '<!--.*-->'

或者如果想要使用它来执行此操作awk,那么您可以使用cat *它来列出目录中的所有文件内容。

cat * | awk '/<!--/,/-->' 

注意:仅当您的目录包含文件时,此方法才有效。

如果你想列出所有目录中的所有内容。你可以试试这个

find . -type f | xargs cat | awk '/<!--/,/-->/'

相关内容