bash – 查找文件的名称小于或大于给定参数

前端之家收集整理的这篇文章主要介绍了bash – 查找文件的名称小于或大于给定参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说在我得到的给定目录中
tzury@x200:~/Desktop/sandBox$ls -l
total 20
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N00.P000
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N00.P001
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N00.P002
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N00.P003
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N00.P004
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N01.P000
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N01.P001
drwxr-xr-x 2 tzury tzury 4096 2011-03-09 10:19 N01.P002

我寻求一种bash方式来获取名称比给定参数更大或更小的文件列表,例如:

$my_finder lt N00.P003

应返回N00.​​P000,N00.P001和N00.P002

$my_finder gt N00.P003

应返回N00.​​P004,N01.P000,N01.P001和N01.P002

我想在$(ls)和$name!= $2中迭代名称,但相信有更优雅的方式这样做

永远不要迭代ls输出

这是我的建议:

for fn in *; do test "$fn" -$1 "$2" && echo "$fn"; done

编辑:

抱歉.仅当$fn和$2为数字时,上述方法才有效.你必须用$op替换$1,并在循环前添加一个选择器. OP = “<”或op =“>”取决于$1,分别是lt或gt.

猜你在找的Bash相关文章