本文介绍了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:如何循环排序顺序排列的所有文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!