我试图从给定目录中找到所有C#接口。我尝试过这个命令:
find . -type f | xargs basename | grep ^I
但是basename
正在回复错误,因为我发送了一个字符串列表,而不是字符串本身。如何获取basename
输出的所有字符串传输给它?
答案 0 :(得分:2)
您不需要使用xargs
。您可以使用:
find . -type f -name 'I*' -exec basename '{}' ';'
如果您使用的是GNU查找,则不需要basename
:
find . -type f -name 'I*' -printf %f\\n
这里,%f
是"文件名的GNU查找printf格式,其中除最后一个组件以外的所有组件都已删除"。还有许多其他可能的格式代码;有关详细信息,请参阅man find
。
答案 1 :(得分:1)
使用xargs -i
可以解决问题:
find . -type f | xargs -i basename "{}" | grep ^I