How to loop all files in sorted order in Bash?

后端 未结 7 1047
离开以前
离开以前 2020-12-05 01:51

I am looping all files in directory with following command:

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

However, I get order like this:

<         


        
7条回答
  •  醉酒成梦
    2020-12-05 02:33

    Like @Kusalananda's solution (perhaps easier to remember?) but catering for all files(?):

    array=("$(ls |sed 's/[^0-9]*\([0-9]*\)\..*/\1 &/'| sort -n | sed 's/^[^ ]* //')")
    for x in "${array[@]}";do echo "$x";done
    

    In essence add a sort key, sort, remove sort key.

    EDIT: moved comment to appropriate solution

提交回复
热议问题