本文介绍了BASH:如何循环排序顺序排列的所有文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在循环目录中的所有文件,下面的命令:

 为我在* .fas;做some_ code;完成的;

不过,我得到顺序是这样的:

vvchr1.fas
vvchr10.fas
vvchr11.fas

而不是vvchr1.fas,vvchr2.fas,vvchr3.fas,什么是数字顺序。

我已经tryed sort命令,但没有成功:)非常感谢你的帮助。


解决方案

 对我`LS * .fas |排序-V`;做some_ code;完成的;

其中,排序-V 不按男人排序 A版排序 - 一个自然排序(版本)号文本中

同样只使用 LS

 对我`LS -v * .fas`;做回声$ I;完成的;

I am looping all files in directory with following command:

for i in *.fas; do some_code; done;

However, I get order like this:

vvchr1.fasvvchr10.fasvvchr11.fas

instead of vvchr1.fas, vvchr2.fas, vvchr3.fas, what is numerical order.

I have tryed sort command, but with no success:) Thank you very much for your help.

解决方案
for i in `ls *.fas | sort -V`; do some_code; done;

where sort -V does according to man sort a version sort - a natural sort of (version) numbers within text

The same using only ls:

for i in `ls -v *.fas`; do echo $i; done;

这篇关于BASH:如何循环排序顺序排列的所有文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 16:00