Performance Unix ls命令循环性能

Performance Unix ls命令循环性能,performance,bash,shell,unix,Performance,Bash,Shell,Unix,我有这个命令 {0..1000}中i的;做ls-Falh/foo/| grep bar.$i | tr-s“| cut-d”-f5 数字0..1000仅用于测试,但它可以从0变为67864,例如。。。此命令正在运行,但显然速度非常慢。。。是否有更好的方法在更短的时间内执行此操作?列出1000个循环大约需要6秒钟 我编辑以获取更多信息 我想要的是为n检索该命令,并将该行插入一个数组(我使用的是java),这样每一行都有“foo”=>commandoutput” 它必须返回每个返回文件的第五(5)列

我有这个命令

{0..1000}中i的
;做ls-Falh/foo/| grep bar.$i | tr-s“| cut-d”-f5

数字
0..1000
仅用于测试,但它可以从0变为67864,例如。。。此命令正在运行,但显然速度非常慢。。。是否有更好的方法在更短的时间内执行此操作?列出1000个循环大约需要6秒钟 我编辑以获取更多信息

我想要的是为n检索该命令,并将该行插入一个数组(我使用的是java),这样每一行都有
“foo”=>commandoutput”
它必须返回每个返回文件的第五(5)列…例如

4,0K
4,0K
933
1,2K
6
2,2K
428
428
428
428
428
428
428
2,2K
6
2,2K
4,0K
4,0K
109K
0
0
问题不在于输出,实际上我已经设法使用了
awk'{print$5}'
,而不是执行
tr | cut
,但是
ls
命令很慢,因为循环太多了……所以我想要的是一种更快的方法来获得第五个(第五个)列,其中显示文件大小…

find/tmp/-maxdepth 1-名称栏。\*-printf“%f%k\\n”| cut-d.-f2 | sort-n | awk'$1>0&$1<791{print$2}
find /tmp/ -maxdepth 1 -name bar.\* -printf "%f %k\\n" | cut -d . -f 2|sort -n | awk '$1 > 0 && $1 < 791 { print $2 }'
Find打印文件名,大小为KB,cut删除文件名的非数字部分,对数字部分进行排序,awk进行数字分析并打印大小


看起来你不需要排序,所以你可以从管道中删除排序。

我投票赞成解释你想要实现的目标,而不是破译管道。看起来她想在
/foo/
中的文件中为多个模式
条。{0..791}
,然后显示第五个字段(由一些空格分隔的字段)。注意:。请更具体一点。
grep
应该做什么?还有,这就是所有的循环吗?没有
done
那么有什么东西你忘记复制了吗?请理解,我们不知道你的问题,所以对你来说显而易见的东西对我们来说是未知的。@user1381537:使用
du-h/foo/*
命令有什么错?这个命令,可以输出MB/GB/TB大小的文件吗?因为我处理的文件大小为+10TB,tooFind不能,但awk可以以任何方式处理$2数字。