假设在给定的目录中我得到了
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
Run Code Online (Sandbox Code Playgroud)
我寻求一种bash方法来获取其名称大于或小于给定参数的文件列表,例如:
$ my_finder lt N00.P003
Run Code Online (Sandbox Code Playgroud)
将返回N00.P000, N00.P001并且N00.P002
$ my_finder gt N00.P003
Run Code Online (Sandbox Code Playgroud)
应返回N00.P004, N01.P000,N01.P001和N01.P002
我正在考虑迭代for name in $(ls),while $name != $2但相信有更优雅的方法
永远不要迭代ls输出!
这是我的建议:
for fn in *; do test "$fn" -$1 "$2" && echo "$fn"; done
Run Code Online (Sandbox Code Playgroud)
编辑:
对不起。仅当 $fn 和 $2 为数字时,上述方法才有效。您必须将 -$1 替换为 $op,并在循环前面添加一个选择器。op="<"或分别op=">"取决于 $1 是lt或gt。
| 归档时间: |
|
| 查看次数: |
6719 次 |
| 最近记录: |