我已尝试使用以下命令打印带有制表符分隔符的find命令的输出。
echo -e "\t"; find /usr/live/class/$client_abbr -name "$line.cls" -exec grep '^#include' {} \;
如果输出包含n行,则只打印带有制表符分隔符的第一行,并且它不会应用于其余行。请让我知道如何修改上面的命令,让所有行前面都有标签。
答案 0 :(得分:3)
您可能会发现xargs
比使用-exec
更有效率。额外引号-type f
和-print0
分别用于安全性,用于指定您需要文件(不是目录)以及用于启用具有嵌入空格的文件名。将grep
输出提示传送到sed
(归属于 Fischer的评论),即可获得所需内容。
find "/usr/live/class/$client_abbr" -type f -name "$line.cls" -print0 |
xargs -0 grep '^#include' |
sed 's/^/\t/'