Linux 如何使用;查找“;及;grep“;也要获取文件大小吗?
我有这个剧本:Linux 如何使用;查找“;及;grep“;也要获取文件大小吗?,linux,unix,command-line,grep,Linux,Unix,Command Line,Grep,我有这个剧本: find test -type f \( -iname \*.html -o -iname \*.htm -o -iname \*.xhtml \) -exec grep -il ".swf" {} \; -printf '%k KB - \t %p\n' > result-swf-files.csv 这将在目录“test”(及其子目录)中搜索包含单词“.swf”的所有HTML文件。并将编写一个包含结果的CSV文件 但是我也希望在同一行中获得文件大小(现在,脚本在一行中输
find test -type f \( -iname \*.html -o -iname \*.htm -o -iname \*.xhtml \) -exec grep -il ".swf" {} \; -printf '%k KB - \t %p\n' > result-swf-files.csv
这将在目录“test”(及其子目录)中搜索包含单词“.swf”的所有HTML文件。并将编写一个包含结果的CSV文件
但是我也希望在同一行中获得文件大小(现在,脚本在一行中输出grep结果-没有文件大小-在另一行中输出printf结果-包括文件大小)。
如何向grep添加一个选项以获取文件大小?一种不太详细的方法是使用递归grep(如果您的系统支持): 说明:
- Grep递归地使用“rl”标志
- 包括文件模式“*.htm”
- 在每个htm*文件中搜索字符串“.swf”
- 仅在“测试”目录下搜索
- 通过管道将结果传输到xargs,其中每个文件名都成为“ls-l”命令的参数
- 然后使用awk仅获取文件名和文件大小。在awk打印的第9列和第5列之间使用逗号“,”以获得csv输出
find . -type f \( -iname \*.html -o -iname \*.htm -o -iname \*.xhtml \) -exec grep -il ".swf" {} \; -printf '%k KB - \t %p\n'| grep "[0-9] [KB]"
grep没有这样的功能。如果要通过删除两行之间的换行来合并每两行,请使用sednew-known命令。不知道如何在我的示例中使用它…但我不想将这两行合并,我只想将文件大小添加到grep结果中。执行一个
bash
脚本,该脚本同时执行这两项操作并格式化结果。。。不确定如何使用bash:查找测试类型f(-iname*.html-o-iname*.htm-o-iname*.xhtml)-execbash-c'grep-il.swf“{}\;>result-swf-files.csv我试过了,脚本似乎永远都在运行……您是在查找html文件的文件大小还是swf文件的文件大小?
find . -type f \( -iname \*.html -o -iname \*.htm -o -iname \*.xhtml \) -exec grep -il ".swf" {} \; -printf '%k KB - \t %p\n'| grep "[0-9] [KB]"