【发布时间】:2017-02-19 23:53:52
【问题描述】:
我想要做的有点难以解释。假设我有一个目录,其中有一堆不同的用户向其中提交内容。我要求每个人提供一个扩展名为“.foo”的文件。然后我向所有人索要了一个扩展名为“.bar”的文件。我想要一份提交 .foo 但未提交 .bar 的所有人的名单。
我假设您以某种方式使用 grep 两次,并在 grep 中包含所有者名称,但这就是我感到困惑的地方。我正在尝试在一个命令管道中完成这一切。
这是我试图检索名称的方法:
find . -type f -printf "%u %f\n" | grep '%u .foo' | grep -v '%u .bar'
我的两个问题是%u 没有给出来自printf 的名称,并且排除 bar 部分不依赖于 grep foo。它的意思是列出所有拥有 foo 的人的名字,然后删除提交 bar 的人的名字。
结构按要求:
|--myDirectory
├── samantha.foo - (owner: samantha warren)
├── samantha.bar - (owner: samantha warren
├── robert.foo - (owner: robert jones)
├── doug.foo - (owner: doug field)
├── doug.bar - (owner: doug field)
├── emily.foo - (owner: emily smith)
输出应该如下:
robert jones
emily smith
【问题讨论】:
-
多个用户如何在同一个目录下“提交”同一个文件名?每个都会覆盖前一个。
-
不要让我们猜测您的问题的具体细节。请参阅stackoverflow.com/questions/39338196/…(允许 zipfile VS 就地目录/文件)作为指定与目录/子目录/文件相关的 Q 的绝佳示例。编辑您的 Q 以包含应该是进程的示例文件/目录以及不应处理的示例文件/目录,然后包含您所需的结果。祝你好运。
-
好节目!很高兴你得到了答案。祝你好运。