我有这样的脚本:
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结果-它包括文件大小)。
2条答案
按热度按时间v6ylcynt1#
一种不太冗长的方法是使用递归grep(如果您的系统支持它):
说明:
请随意将"ls-l"替换为人类可读的变体,如"ls-lk"或"ls-lh"
或者,在脚本中,您可以只打印每个文件的第2行(包含大小的行)。您可以像这样使用管道和grep:* * grep "[0 - 9][KB]"**
下面是完整的命令:
3pmvbmvn2#
查找. -名称 * 模式 *.gz -打印0|x字符-0 ls -lh
所以对于所有你想要的文件都得到ls。