Intereting Posts

Как я могу отсортировать эти имена каталогов численно?

Я знаю, что я могу каким-то образом отсортировать этот результат численно (поэтому cpu1 / следует cpu0 /) … Возможно, я мог бы заставить что-то работать в конечном итоге, разделив строку различными способами с помощью awk, но есть ли «простой» способ, были бы несколько повторно использованы в будущем в других сценариях?

> for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq; do echo -n "$i: "; cat $i; done /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: 2395000 /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu11/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu12/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu13/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu14/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu15/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu16/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu17/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu18/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu19/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu20/cpufreq/scaling_cur_freq: 1064000 

«Сортировка версии», похоже, отлично работает с этим.

 for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq; do echo -n "$i: "; cat $i; done | sort -V 

Это должно работать с большинством реализаций сортировки :

  ... | sort -t/ -k6.4n 

Попытка указать пример (не могу найти cpufreq для систем, к которым у меня есть доступ …):

входной файл

 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: 2395000 /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu11/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu12/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu13/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu14/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu15/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu16/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu17/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu18/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu19/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu20/cpufreq/scaling_cur_freq: 1064000 

вывод:

 zsh-4.3.12[t]% sort -t/ -k6.4n infile /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: 2395000 /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu11/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu12/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu13/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu14/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu15/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu16/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu17/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu18/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu19/cpufreq/scaling_cur_freq: 1064000 /sys/devices/system/cpu/cpu20/cpufreq/scaling_cur_freq: 1064000