在 bash 中排序“for”环形

发布于 2024-12-11 02:55:17 字数 99 浏览 0 评论 0原文

有什么方法可以控制我运行时发生的排序, 对于我在 * ;做;回声 $i;完毕; 在我的目录中。 似乎总是使用ascii排序。无论如何要进行数字排序吗?

谢谢, 维韦克

Is there any way to control the sorting that occurs when I run a,
for i in * ; do; echo $i; done;
in my directory.
It seems to always use ascii sorting. Anyway to do a numeric sort?

Thanks,
Vivek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

裸钻 2024-12-18 02:55:17

如何使文件名自然地按数字排序,即用前导零填充。使用 001 ..010 .. 100 而不是 1 .. 10 .. 100

包含子目录:

for i in $( ls -d * | sort -n ); do echo $i; done;

排除子目录:

for i in $( ls | sort -n ); do echo $i; done;

我希望这有帮助。

How about making your filenames so they sort naturally as numbers, i.e. padded with leading zeros. Instead of 1 .. 10 .. 100, use 001 ..010 .. 100?

To include sub-directories:

for i in $( ls -d * | sort -n ); do echo $i; done;

To exclude sub-directories:

for i in $( ls | sort -n ); do echo $i; done;

I hope this helps.

深海里的那抹蓝 2024-12-18 02:55:17

您始终可以使用 sort(1) 及其数字排序:

for i in $(ls -1 * | sort -n) ; do echo $i ; done

You can always use sort(1) and its numeric sort:

for i in $(ls -1 * | sort -n) ; do echo $i ; done
夏至、离别 2024-12-18 02:55:17

您可以使用 ls [排序选项] 为目录提供的排序

      for i in `ls -X` ; do
             echo $i
      done

首先执行具有一定排序的 ls 命令,在示例中对扩展进行排序,然后用 for 循环给出列表

you can use the ordering from ls [sorting options] that you give for the directory with
i.e.

      for i in `ls -X` ; do
             echo $i
      done

first the ls command with a certain sorting is executed, in the example case sorting for extension then you give out the the list with a for loop

别再吹冷风 2024-12-18 02:55:17
for i in $(ls | sort -n) ; do echo $i ; done
for i in $(ls | sort -n) ; do echo $i ; done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文