这与BASH: how to loop all files in sorted order 类似,但我感觉不同 -
我有一系列文件前面有井号和数字,默认情况下在bash中按此顺序排序:
#1 Clear.png
#10 Brilliant Blue.png
#11 Caribbean Blue.png
#12 Aquamarine.png
#13 Teal.png
#14 Turquoise.png
#15 Green.png
#16 Light Green.png
#17 Purple.png
#18 Lt Purple.png
#19 Yellow.png
#2 Standard Pink.png
#20 Brown.png
#3 Light Pink.png
#4 Fuschia.png
#5 Wine.png
#6 Red.png
#7 Orange.png
#8 Blue.png
#9 Light Blue.png
我想在这个顺序中按英镑符号前面的数值在for循环中对这些进行排序,例如
for i in `ls * | sort [method to sort]`; do
*stuff*
done
问题在于,我找到的所有排序解决方案似乎都不能用于使用井号和/或空格对此案例进行排序。
订单文件应该排序:
#1 Clear.png
#2 Standard Pink.png
#3 Light Pink.png
#4 Fuschia.png
#5 Wine.png
#6 Red.png
#7 Orange.png
#8 Blue.png
#9 Light Blue.png
#10 Brilliant Blue.png
#11 Caribbean Blue.png
#12 Aquamarine.png
#13 Teal.png
#14 Turquoise.png
#15 Green.png
#16 Light Green.png
#17 Purple.png
#18 Lt Purple.png
#19 Yellow.png
#20 Brown.png
答案 0 :(得分:1)
sort -k 1.2 -n
应该做的伎俩
-k F.C
定义输入应根据字段F
进行排序,从字符C
开始。两者都从1开始
编辑:刚才我意识到我的回答几乎与你所关联的问题的答案相同。所以绝对是重复的