如何使用开头分隔的制表符打印find命令的输出

时间:2016-05-31 16:29:40

标签: linux bash shell

我已尝试使用以下命令打印带有制表符分隔符的find命令的输出。

echo -e "\t"; find /usr/live/class/$client_abbr -name "$line.cls" -exec grep '^#include' {} \;

如果输出包含n行,则只打印带有制表符分隔符的第一行,并且它不会应用于其余行。请让我知道如何修改上面的命令,让所有行前面都有标签。

1 个答案:

答案 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/'
相关问题