Noah Asked: 2009-06-03 10:35:43 +0800 CST2009-06-03 10:35:43 +0800 CST 2009-06-03 10:35:43 +0800 CST 在 Unix 中是否可以在起点之后列出目录条目? 772 例如,如果我的目录包含文件 a、b、c、c1、c2、c3、c4、d、e、f、g 是否有类似以下伪代码的命令 ls -文件名>“c2” 只会列出文件 c3、c4、d、e、f 编辑: 修改问题以解决更一般的情况 unix ls 7 个回答 Voted Matt 2009-06-03T10:40:43+08:002009-06-03T10:40:43+08:00 在 bash 中,您可以执行以下操作: $ ls [df]* 或者你可以写一个shell脚本。 Best Answer MikeyB 2009-06-03T13:00:12+08:002009-06-03T13:00:12+08:00 啊 - 你的意思是你想在词汇顺序中搜索。用这个: ls | awk '$1 >= "c3" && $1 <= "f" {print;}' Neil 2009-06-03T10:38:55+08:002009-06-03T10:38:55+08:00 使用正则表达式: ls | egrep "[d-z].*" 对于像您这样的奇怪请求,通常就是这种情况。您要求 ls 做一些非常不寻常的事情,涉及理解目录名称的词法结构。 去学习正则表达式:regular-expressions.info 并输入: man grep 阅读手册页grep。 KodeTitan 2009-06-03T10:40:35+08:002009-06-03T10:40:35+08:00 使用 grep 命令,您可以执行所需的任何类型的过滤。类似于 Windows 中的 FIND 命令。以下是一种选择。如果你想得到一个完整的列表,就像你用 "ls -l" 得到的,那么你可能必须将它与 AWK 结合起来。 > ls -1 | grep ^[def] TCampbell 2009-06-03T10:40:55+08:002009-06-03T10:40:55+08:00 按照上一个答案的思路: 使用 shell 的文件名扩展而不是 egrep: ls [d-z]* freiheit 2009-06-03T12:00:48+08:002009-06-03T12:00:48+08:00 ls | grep -A 1000000 '^c2$' | 尾 -n +2 grep 为您提供匹配的行和下一个百万;尾巴切断了第一行。 如果你想要一个长版本,在末尾添加“| xargs ls -l”就可以了。 限制:这不适用于时髦的文件名(尤其是带有换行符的文件名,但可能会遇到空格、控制字符等问题)。如果目录中有超过一百万个文件,它将无法正常工作。 Pablo Martinez 2009-06-03T12:49:53+08:002009-06-03T12:49:53+08:00 不是明确的答案,但这应该有效。 ls -1 | while read f ; do [[ "$f" > "g2" ]] && echo $f ; done 使用 "$(echo $f | tr [AZ] [az])" 可能会更加进化,所以它会忽略大小写。这仅适用于 ASCII 字符串,它不能为 Unicode(或 iso-*)文件名排序
在 bash 中,您可以执行以下操作:
$ ls [df]*
或者你可以写一个shell脚本。
啊 - 你的意思是你想在词汇顺序中搜索。用这个:
使用正则表达式:
对于像您这样的奇怪请求,通常就是这种情况。您要求 ls 做一些非常不寻常的事情,涉及理解目录名称的词法结构。
去学习正则表达式:regular-expressions.info
并输入:
阅读手册页
grep
。使用 grep 命令,您可以执行所需的任何类型的过滤。类似于 Windows 中的 FIND 命令。以下是一种选择。如果你想得到一个完整的列表,就像你用 "ls -l" 得到的,那么你可能必须将它与 AWK 结合起来。
按照上一个答案的思路:
使用 shell 的文件名扩展而不是 egrep:
ls | grep -A 1000000 '^c2$' | 尾 -n +2
grep 为您提供匹配的行和下一个百万;尾巴切断了第一行。
如果你想要一个长版本,在末尾添加“| xargs ls -l”就可以了。
限制:这不适用于时髦的文件名(尤其是带有换行符的文件名,但可能会遇到空格、控制字符等问题)。如果目录中有超过一百万个文件,它将无法正常工作。
不是明确的答案,但这应该有效。
使用 "$(echo $f | tr [AZ] [az])" 可能会更加进化,所以它会忽略大小写。这仅适用于 ASCII 字符串,它不能为 Unicode(或 iso-*)文件名排序