构建用于查找目录中所有文件的UNIX管道(使用find,xargs和du命令)

问题描述 投票:-1回答:1

我需要构建一个UNIX管道,该管道在/usr/share/dict目录下查找包含单词“ english”的所有文件(使用find命令)(对于xargs使用-n 1选项)。并计算它们每个的大小。然后对行进行排序,以使最大的文件显示在底部(xargs和du)。这是我的实现,并且收到断言错误,任何输入都会受到赞赏

find /usr/share/dict -type f -name "english*"| xargs -n 1 du | sort -n

错误消息是E AssertionError:断言44 == 2E +其中44 = len(['4 \ t ./。git / branches \ r','4 \ t ./。git / objects / info \ r','4 \ t ./。git / objects / pack \ r','4 \ t ./。git / refs / tags \ r','8 \ t ./。cache / v / cache \ r','8 \ t ./。git / info \ r', ...])

linux unix linux-kernel embedded-linux unix-timestamp
1个回答
0
投票

两个错误:

  1. 文件可以包含“空格”-用户print0

  2. 它必须是文件。使用-type f

find /usr/share/dict -type f -name "english*" -print0| xargs -0 du | sort -n

© www.soinside.com 2019 - 2024. All rights reserved.