我需要构建一个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', ...])
两个错误:
文件可以包含“空格”-用户print0
它必须是文件。使用-type f
find /usr/share/dict -type f -name "english*" -print0| xargs -0 du | sort -n